大家好,我正在尝试解决 R 中的一个小问题。我想计算 R 中数据帧中行之间的差异。我的数据帧如下所示:
df <- data.frame(ID=1:8, x2=8:1, x3=11:18, x4=c(2,4,10,0,1,1,9,12))
Run Code Online (Sandbox Code Playgroud)
我想创建一个名为 的新列diff.var。该列保存变量中各行的差异结果。一种可能的解决方案是使用diff()函数。当我使用这个函数时,我得到了这个:
diff(df$x4)
[1] 2 6 -10 1 0 8 3
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是当我尝试使用我的数据框应用时,df$diff.var=diff(df$x4)我得到了这个:
Error in `$<-.data.frame`(`*tmp*`, "diff.var", value = c(2, 6, -10, 1, :
replacement has 7 rows, data has 8
Run Code Online (Sandbox Code Playgroud)
由于第一行没有前一行来计算差异,因此我想将其设置为零。我想要得到这样的东西:
ID x2 x3 x4 diff.var
1 8 11 2 0
2 7 12 4 2
3 6 13 10 6
4 5 14 0 -10
5 4 15 1 1
6 3 …Run Code Online (Sandbox Code Playgroud) r ×1