【问题标题】:How can I subtract one row to the row above? [duplicate]如何在上面的行中减去一行? [复制]
【发布时间】:2019-06-28 13:17:25
【问题描述】:

假设我有以下数据框 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 | c
-----------
 2 | 1 | NA
 5 | 2 | 3
 9 | 3 | 4
 3 | 4 | -6

提前谢谢你。

【问题讨论】:

  • 你在找diff()
  • 你减去的是列而不是行,不是吗?我就是不明白,b 呢?
  • @NelsonGon 我认为 OP 想要 diff(a)

标签: r


【解决方案1】:

使用dplyr

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多