减去连续的列

时间:2018-05-18 12:35:27

标签: r

假设我有一个样本data.frame,如下所示:

1  2  3  4  5  6  7  8  9  11
2  3  4  5  6  7  8  9  10  12
3  4  5  6  7  8  9  10  11  13

我想从data.frame的下一列中减去每列,所以我得到这样的内容:

1  1  1  1  1  1  1  1  2  
1  1  1  1  1  1  1  1  2  
1  1  1  1  1  1  1  1  2  

我的真实样本有2291行和50列,我写的代码看起来像这样:

delta <- data.frame(matrix(NA, nrow = 2291, ncol = 49 )) 
for(i in 1:nrow(df)){
for(j in 1:ncol(df)-1){
delta[i,j] <- df[i,j+1]-df[i,j] 
}
}

但是我收到以下错误消息:

Error in data.frame(value, row.names = rn, check.names = FALSE, check.rows = FALSE) : 'row.names' should specify one of the variables

我做错了什么?做这个的最好方式是什么?

1 个答案:

答案 0 :(得分:6)

我们可以删除第一列和最后一列并进行减法

df[-1] - df[-ncol(df)]
#   v2 v3 v4 v5 v6 v7 v8 v9 v10
#1  1  1  1  1  1  1  1  1   2
#2  1  1  1  1  1  1  1  1   2
#3  1  1  1  1  1  1  1  1   2