假设我有以下df列表(实际上我有更多的dfs)。
seq <- c("12345","67890")
li <- list()
for (i in 1:length(seq)){
li[[i]] <- list()
names(li)[i] <- seq[i]
li[[i]] <- data.frame(A = c(1,2,3),
B = c(2,4,6))
}
我希望能够在两个列表相同的单元格位置计算平均值,并保留与原始列表相同的行数和列数。我应该如何做?我相信可以使用apply()函数,但不确定具体操作方法。
预期输出(毫不意外):
A B
1 1 2
2 2 4
3 3 6
实际上,每个列表中的值并不一定相同。
seq
是一个基础函数,请使用另外的名称;2)没有必要使用li[[i]] <- list()
,因为之后您会重新指派它到一个df上;3)仅在循环后执行一次names(li) <- seq
;4)作为循环控制,seq_along(li)
比1:length()
更好。如果length(li)
为零,你将得到向量1:0
,但是使用seq_along
不会引发错误。 - Rui Barradas