【发布时间】:2018-06-16 04:09:40
【问题描述】:
假设我有一个包含 3 个矩阵的列表。我无法弄清楚如何找到每个矩阵的第一列的总和并得到结果。
Eg:
A=matrix(c(1:4),nrow=2,ncol=2)
B=matrix(c(5:8),nrow=2,ncol=2)
C=matrix(c(9:12),nrow=2,ncol=2)
MyList=list(A,B,C)
The list is:
[[1]]
[,1] [,2]
[1,] 1 3
[2,] 2 4
[[2]]
[,1] [,2]
[1,] 5 7
[2,] 6 8
[[3]]
[,1] [,2]
[1,] 9 11
[2,] 10 12
我想使用 lapply 从每个矩阵中找到第一列元素的总和。 预期结果: 3,11,19 (当然是列表格式)
【问题讨论】:
-
试试
lapply(MyList, function(x) sum(x[,1])) -
@akrun,谢谢你这工作。但你能解释一下代码吗?第二个参数是干什么用的?抱歉,但我在 R 中不是很擅长,我正在尝试了解“应用”系列的工作原理。
-
用
lapply遍历列表,使用匿名函数,提取第一列x[,1]并得到它的sum -
抱歉,还有一个问题。现在我将如何使用我的“自己创建的函数(用户定义的函数)”然后在 lapply 中使用它?假设,现在我想找到每个矩阵中第一列的乘积。
标签: r list matrix apply lapply