如何使用 dplyr/magrittr - R 提取函数列表值的单个元素

How to extract a single element of list-value of function using dplyr/magrittr - R

我正在使用 dplyr 和管道编写代码并使用 NbClust 函数,其中 returns 一个名为 All.indexAll.CriticalValues 的对象列表, Best.nc, Best.partition.

所以我可以将我的表达式分配给某个变量,然后将 Best.nc 元素作为 variable$Best.nc 引用。但是如何使用管道提取 Best.nc 元素?

我试过purrr::map('[[', 'Best.nc')但是没用。

你可以不用map直接使用基数R[[作为函数:

lst <- list(a = 1, b = 2)

lst %>% `[[`('a')
# [1] 1

variable %>% `[[`('Best.nc')

或使用purrr,您可以使用pluck函数并简单地提供元素索引或名称:

library(purrr)

lst %>% pluck('a')
# [1] 1
lst %>% pluck(1)
# [1] 1

针对您的情况:

variable %>% pluck('Best.nc')

pluck[[ 提取器的优点是您可以为嵌套列表进行深度索引,例如:

lst <- list(a = list(x = list(), y = 'm', z = 1:3), b = 2)

要访问嵌套在 a 中的 z 元素:

lst %>% pluck('a', 'z')
# [1] 1 2 3