就像数据帧中的列和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)
您可以使用Reduce
并选择所需的列,即
Reduce(`+`, mylist)
#Reduce(`+`, mylist)['n1'] <-- This will extract the n1 column
Run Code Online (Sandbox Code Playgroud)
这使,
Run Code Online (Sandbox Code Playgroud)n1 n2 1 4 7 2 4 8 3 4 10