如何使用上一列的总和创建列';使用R中的apply函数设置当前行和下面的行?

如何使用上一列的总和创建列';使用R中的apply函数设置当前行和下面的行?,r,dataframe,apply,R,Dataframe,Apply,我希望能够将每行中的值与下面的值相加,并将结果分配给R中的一个新列 下面的代码(几乎)通过使用for循环实现了我想要的功能(除了我必须手动完成最后一行——这不是一个真正的问题)。我想做一件类似的事情,但是使用apply函数,因为for循环在我的大型数据集上非常慢,但是我无法理解apply语法 data<-data.frame(runif(10)) data$x<- for (i in 1:nrow(data)) { data[i,2 ] <- data[i,1]+da

我希望能够将每行中的值与下面的值相加,并将结果分配给R中的一个新列

下面的代码(几乎)通过使用for循环实现了我想要的功能(除了我必须手动完成最后一行——这不是一个真正的问题)。我想做一件类似的事情,但是使用apply函数,因为for循环在我的大型数据集上非常慢,但是我无法理解apply语法

data<-data.frame(runif(10))

data$x<-
 for (i in 1:nrow(data)) {
   data[i,2 ] <- data[i,1]+data[i+1,1]
                          }   

data我们可以通过从列的任意一端移除一个值并与NA合并,来获得当前值与前一个值的总和

data$x <- c(data[,1][-1] + data[,1][-nrow(data)], NA)
data$x使用rollSum(包
RcppRoll
) 您可以使用函数
roll\u sum(x,nb)
,该函数允许您对向量进行(连续)滚动求和

如果我们以你为例:

data<-data.frame(x=runif(10000000))  
data$sum<-roll_sum(data$x, 1)

您可以创建一个关闭1的向量(它从第二个分量开始),并在其末尾添加一个NA。然后计算总数

data<-data.frame(runif(10))
col1 <- data$runif.10.
col1.off <- col1[2:length(col1)]
col1.off <- c(col1.off, NA)
data$x <- col1 + col1.off

data最后一行与什么求和?零?在提问之前做些调查。问题已经存在。当人们在确认答案之前花时间回答你时,请阅读所有答案。
data<-data.frame(runif(10))
col1 <- data$runif.10.
col1.off <- col1[2:length(col1)]
col1.off <- c(col1.off, NA)
data$x <- col1 + col1.off