我有以下数据框:
df <- data.frame(id = c("1", "1", "1", "2", "2"),
x = c(12, 20, 24, 10, 14))
id x
1 12
1 20
1 24
2 10
2 14
我想获得
x
每个 id
的滞后差异。预期结果:
id x
1 12
1 8
1 4
2 10
2 4
最好使用
dplyr
解决方案。
请注意,这个问题不是重复的,因为在我的例子中,组指的是 ID,而不是无序类别。
使用
diff
library(dplyr)
df %>%
mutate(x = c(x[1], diff(x)), .by = id)
id x
1 1 12
2 1 8
3 1 4
4 2 10
5 2 4