r - 如何使用 dplyr/magrittr - R 提取函数列表值的单个元素
问题描述
我正在使用dplyr
和管道编写代码并使用NbClust
函数,它返回一个名为All.index
, All.CriticalValues
, Best.nc
,的对象列表Best.partition
。
所以我可以将我的表达式分配给某个变量,然后将Best.nc
元素称为variable$Best.nc
. 但是如何Best.nc
使用管道提取元素?
我试过purrr::map('[[', 'Best.nc')
了,但没有用。
解决方案
您可以直接使用基本 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
推荐阅读
- c++ - std::fstream 从文件中读取数据块并将数据写回文件直到 EOF
- c# - 为多种可能的结果建模 ASP.NET Core 控制器更新
- sql - 将访问数据库表和数据迁移到 SSMS,如何验证它是否正确迁移?
- javascript - 如何从内部异步函数返回外部函数结果?
- python - 以编程方式创建 StackDriver 仪表板
- php - 如何在 PHP 中等分两个数组?
- android - 支持的最低 Gradle 版本为 4.10.1。当前版本是 4.4
- python - 确定 Python 类中的方法调用顺序
- python - 你如何让你的精灵不在屏幕上复制自己?一旦文本出现,你如何让你的精灵消失或重新开始?
- swift - 修改参数值时使用 filter{where:} 与 removeAll{where:} 的效率