假设我有一个样本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
我做错了什么?做这个的最好方式是什么?
答案 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