首页 > 解决方案 > 如何在上面的行中减去一行?

问题描述

假设我有以下数据框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 而不是 b 的行差异。

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

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

先感谢您。

标签: r

解决方案


使用dplyr

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

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

推荐阅读