Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将每列添加到新的数据框_R_Dataset - Fatal编程技术网

R 将每列添加到新的数据框

R 将每列添加到新的数据框,r,dataset,R,Dataset,例如,我有一个包含4列的数据框: col1 col2 col3 col4 我希望通过累加每列来获得一个新的数据帧: col1 col1+col2 col1+col2+col3 col1+col2+col3+col4 我应该如何在R中写入?如果这是一个矩阵,那么您可以使用matrixStats包中的rowCumsums 从一个数据帧开始,回到一个数据帧,我想你可以试试 library(matrixStats) startdf <- data.frame(col1=c(1,4), col2=c

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

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


我应该如何在R中写入?

如果这是一个矩阵,那么您可以使用matrixStats包中的rowCumsums

从一个数据帧开始,回到一个数据帧,我想你可以试试

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)))


如果这是一个矩阵,那么可以使用matrixStats包中的rowCumsums

从一个数据帧开始,回到一个数据帧,我想你可以试试

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)))


在基数R中,可以使用apply计算行累积和

使用@Henry的数据:

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

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

在基数R中,可以使用apply计算行累积和

使用@Henry的数据:

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

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

Base R的效率和清洁度不如Ronak的[使用Henry的数据]:

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

Base R的效率和清洁度不如Ronak的[使用Henry的数据]:

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

这是一个编程问题而不是统计问题这是一个编程问题而不是统计问题