首页 > 解决方案 > 如何使用 dplyr/magrittr - R 提取函数列表值的单个元素

问题描述

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

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

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

标签: rdplyrpurrrmagrittr

解决方案


您可以直接使用基本 R[[作为函数,而无需map

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)

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

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

推荐阅读