将每一列添加到新的数据框中

时间:2020-09-15 23:09:07

标签: r dataset

例如,我有一个包含4列的数据框: col1 col2 col3 col4

我想通过累加每一列来获得一个新的数据框: col1 col1+col2 col1+col2+col3 col1+col2+col3+col4

我应该如何用R书写?

3 个答案:

答案 0 :(得分:4)

在基数R中,您可以使用cumsum来按行计算apply

使用@Henry的数据:

startdf[] <- t(apply(startdf, 1, cumsum))
startdf

#  col1 col2 col3 col4
#1    1   21  321 4321
#2    4   34  234 1234

答案 1 :(得分:2)

如果这是矩阵,则可以使用rowCumsums包中的matrixStats

所以从一个数据帧开始,然后返回一个数据帧,我想您可以尝试类似的

library(matrixStats)
startdf <- data.frame(col1=c(1,4), col2=c(20,30), 
                 col3=c(300,200), col4=c(4000,1000))
finishdf <- as.data.frame(rowCumsums(as.matrix(startdf)))

出发

  col1 col2 col3 col4
1    1   20  300 4000
2    4   30  200 1000

  V1 V2  V3   V4
1  1 21 321 4321
2  4 34 234 1234

答案 2 :(得分:1)

R基(不像Ronak的有效或干净)[使用亨利的数据]:

data.frame(Reduce(rbind, Map(cumsum, data.frame(t(startdf)))), row.names = NULL)