假设我有这样一个列表:

lst <- list(list(1,2,3),list(4,5,6),list(7,8,9))

然后我想提取元素1、5和9.我应该如何高效地做到这一点?我遇到过这个帖子;Select first element of nested list,建议使用:

lapply(x, '[[', 1)

Select 嵌套列表的第一个元素.我想知道在上述情况下是否可以做类似的事情?

推荐答案

您可以使用sapply使用列表的长度,并使用函数将列表子集,如下所示:

sapply(1:length(lst), function(x) lst[[x]][[x]])

R相关问答推荐

如何删除R中除某些特定名称外的所有字符串?

多重RHS固定估计

在发布到PowerBI Service时,是否可以使用R脚本作为PowerBI的数据源?

根据模式将一列拆分为多列,并在R中进行拆分

如何在R中添加截止点到ROC曲线图?

如何从当前行上方找到符合特定条件的最接近值?

R Sapply函数产生的值似乎与for循环方法略有不同

使用ggsankey调整Sankey图中单个 node 上的标签

将数据集中的值增加到当前包含的最大值

R s iml包如何处理语法上无效的因子级别?'

S用事件解决物质平衡问题

R根据条件进行累积更改

为什么我的基准测试会随着样本量的增加而出现一些波动?

从所有项的 struct 相同的两级列表中,将该第二级中的所有同名项绑定在一起

从外部文件读取多个值作为字符向量

在使用tidyModels和XGBoost的二进制分类机器学习任务中,所有模型都失败

使用带有OR条件的grepl过滤字符串

DEN扩展包中的RECT树形图出现异常行为

在R中,我如何使用滑动窗口计算位置,然后进行过滤?

变异以按组从其他列创建具有最大和最小值的新列