如何在上一行中减去一行?

时间:2019-06-28 13:17:25

标签: r

假设我有以下数据框df:

df <- data.frame("a"=c(2,5,9,3), "b"=(1:4))

 a | b
-------
 2 | 1
 5 | 2
 9 | 3
 3 | 4

我现在要创建一个新列“ c”,该值是所述列(n)与上方列(n-1)之间的差,因此在此示例中,它将是a列和a列的行差异不是b。

我正在寻找的最终输出如下:

 a | b | c
-----------
 2 | 1 | NA
 5 | 2 | 3
 9 | 3 | 4
 3 | 4 | -6

谢谢。

1 个答案:

答案 0 :(得分:2)

使用dplyr

df <- data.frame("a"=c(2,5,9,3), "b"=(1:4))

library(dplyr)
df %>% 
  mutate(c = a - lag(a))