列(垂直)列表的总和列表

bea*_*111 2 r

就像数据帧中的列和X1 $ value + X2 $值一样,我想在尽可能少的R代码的列表列表上执行它,而不是使用for-loop.谢谢.

输入:

n1 <- c(1,2,3)
n2 <- c(2,3,4)
df1 <- data.frame(n1,n2)

n1 <- c(3,2,1)
n2 <- c(5,5,6)
df2 <- data.frame(n1,n2)

mylist <- list(df1, df2)

n0 <- c(0,0,0) #init compute
compute <- data.frame(n0)

for(i in 1:length(mylist)){
    compute[,1] <- mylist[[i]]$n1 + compute[,1] 
}
Run Code Online (Sandbox Code Playgroud)

期望的输出:

>compute
  n0
1 4
2 4
3 4
Run Code Online (Sandbox Code Playgroud)

Sot*_*tos 8

您可以使用Reduce并选择所需的列,即

Reduce(`+`, mylist)
#Reduce(`+`, mylist)['n1']  <-- This will extract the n1 column
Run Code Online (Sandbox Code Playgroud)

这使,

  n1 n2
1  4  7
2  4  8
3  4 10
Run Code Online (Sandbox Code Playgroud)