我有一个列表(总计)的12个data.frames(所有相同的形式),我需要列2中列表的每一行的总和。
我正在寻找一种更智能的方法来对列表中的元素进行求和,如下所示:
Total[[1]][,2] + Total[[2]][,2] + Total[[3]][,2] +..+Total[[12]][,2]
colum 2的长度为70,因此结果应该是长度为70的矢量
希望有人知道他对sapply
,lapply
或apply
功能代码
答案 0 :(得分:12)
这是一个选项:
Reduce("+", lapply(Total, "[[", 2))
但是请注意,由于+
,这对潜在的NA并不适用。
以下是内置数据的示例:
Reduce("+", lapply(list(iris, iris, iris), "[[", 2))
答案 1 :(得分:7)
我们可以在rowSums
的{{1}}中提取第二列后使用list
。如果有任何缺失值,data.frame
将负责处理。
na.rm=TRUE
或另一个选项是rowSums(sapply(Total, `[[`, 2), na.rm = TRUE)
tidyverse