在R中创建数据帧,它是另一个数据帧的行和后续行的交互

时间:2016-08-04 14:41:42

标签: r

这不是确切的问题,而是一般的想法

test<-data.frame(rbind(c(1,2,3), c(4, 5, 6), c(7, 8, 9), c(1, 2, 3))) 
names(test)[1] <- "one"
names(test)[2] <- "two"
names(test)[3] <- "three"  

所以我基本上想要创建一个包含一列的新数据框,其中每一行是行(I) - 测试数据框的行(I + 1)

如:

test[1,1]-test[2,1]
test[2,1]-test[3,1]
test[3,1]-test[4,1]...

我试过了:

k<-nrow(test)
for(i in 1:k-1){
  test2<-data.frame(test[i,1]-test[i+1,1])
}

但这只是产生一个值

然后添加最后一行'0',所以总共有k行

1 个答案:

答案 0 :(得分:0)

对于您的行到行减法,您需要循环遍历行和列:

k<-nrow(test)
n <- ncol(test)
for (j in 1:n){

  for(i in 1:k-1){

    test[i,n + j] <- test[i,j]-test[i+1,j]
    i = i+1
  }
}

添加新行:

test[k+1,] <- matrix(0,nrow=1, ncol=n)