【发布时间】:2020-10-01 17:36:40
【问题描述】:
所以。下面可以作为真实列表的一个小例子。
a <- data.frame(
x = c("A","A","A","A","A"),
y = c(1,2,3,4,5),
z = c(1,2,3,4,5))
b <- data.frame(
x = c("A","A","A","A","A"),
y = c(1,2,3,4,5),
z = c(1,2,3,4,5))
c <- data.frame(
x = c("A","A","A","A","A"),
y = c(1,2,3,4,5),
z = c(1,2,3,4,5))
l <- list(a,b,c)
从第二列到最后一列 - 在每个数据帧上 - 我想将总和作为新列添加到每个数据帧。
我试过了:
lapply(l, function(x) rowSums(x[2:ncol(x)]))
返回正确的总和,但不将它们添加到数据帧中。
我也试过了:
lapply(l, transform, sum = y + z)
这给了我正确的结果但不够灵活,因为我并不总是知道每个数据框有多少列以及它们有什么名称。我唯一知道的是,我必须从第二列开始到结束。我尝试将这两种方法结合起来,但我不知道该怎么做。
谢谢
【问题讨论】: