假设我有一个样本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
Run Code Online (Sandbox Code Playgroud)
我想从我的下一列中减去每一列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
Run Code Online (Sandbox Code Playgroud)
我的真实样本有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]
}
}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误消息:
Error in data.frame(value, row.names = rn, check.names = FALSE, check.rows = FALSE) : 'row.names' should specify one of the variables
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?做这个的最好方式是什么?
我们可以删除第一列和最后一列并进行减法
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
Run Code Online (Sandbox Code Playgroud)