【发布时间】:2017-01-23 15:51:35
【问题描述】:
如果我有一个像 mtcars 这样的示例数据框,并且我想找到所有行的 mtcars$qsec 之间的差异,我可以做 diff(mtcars$qsec)。但是有没有一种简单的方法可以使 diff(mtcars$qsec) 在原始 mtcars 数据框中成为一个新列?我发现这很困难,因为 diff(mtcars$qsec) 比其他 mtcars 少一行。
> head(mtcars,3)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
【问题讨论】:
-
N 个数字表示 N-1 个差异。有几种不同的方法可以从 N-1 个值中生成长度为 N 的向量,嗯。通常,
c(NA, diff(x))或类似名称。 -
可能是受骗的:stackoverflow.com/q/13594021