r - 如何使用 lapply(seq_along()) 保留列表元素的名称?
问题描述
我想使用此代码在每个 lapply 序列之后保留我的数据框的名称。结果列表(list2)使我所有的数据框名称都消失了。我该如何改进它?谢谢你。
list2<-lapply(seq_along(list1), function(i, USE.NAMES=T){
matrix_a%*%list1[[i]]
})
解决方案
不要使用seq_along
循环遍历列表,直接执行。
lapply(list1, function(x) matrix_a %*% x)
lapply
使用传递给它的对象的名称。
假设你list1
是这样的
list1 <- list(x = structure(c(1L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
3L, 0L, 0L, 0L, 0L, 4L), .Dim = c(4L, 4L)), y = structure(c(1L,
0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 4L), .Dim = c(4L, 4L)))
list1
有名字
names(list1)
#[1] "x" "y"
但seq_along(list1)
没有名字。
names(seq_along(list1))
#NULL
因此, 的最终输出中不存在任何名称lapply
。
如果由于某种原因您必须通过索引,您可以稍后添加名称
setNames(lapply(seq_along(list1), function(i) matrix_a%*%list1[[i]]), names(list1))
推荐阅读
- flutter - 为什么Here Sdk 没有显示巴基斯坦卡拉奇的详细地图?(扑)
- flutter - FormatException:使用 OSM 映射意外结束输入(在字符 1 处)
- ffmpeg - 如何从10个视频中分屏?(3840x2160)
- java - 尝试在 (Windows) Docker 容器中安装 Java 静默失败
- c# - 以编程方式安装 powershell 模块
- reactjs - 如何修复这个错误?Unexpected SyntaxError: Unexpected token '!'
- c++ - cout, a++, ++a -> order 以及它是如何工作的
- c# - 如何在 C# 控制台中为整个段落的左右添加填充?
- d3.js - 从 v3 升级到 v7 后 D3 无法渲染
- excel - Excel 宏从 OneDrive Sharepoint “签出”