如何使用 dplyr/magrittr - R 提取函数列表值的单个元素
How to extract a single element of list-value of function using dplyr/magrittr - R
我正在使用 dplyr
和管道编写代码并使用 NbClust
函数,其中 returns 一个名为 All.index
、All.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
我正在使用 dplyr
和管道编写代码并使用 NbClust
函数,其中 returns 一个名为 All.index
、All.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