【问题标题】:R data table rows subtraction [duplicate]R数据表行减法[重复]
【发布时间】:2019-01-26 03:52:47
【问题描述】:

我有一个包含 117 个对象(行)和 51 个变量(列)的数据表。我想从前一行中减去每一行并将结果发布到一个新的数据表中。

我的数据表是利率的时间序列,我想计算每日差异。

【问题讨论】:

标签: r


【解决方案1】:
apply(dt, MARGIN = 2, diff)

将为每一列计算每个元素与前一个元素之间的差异。 试试:

a = data.frame(matrix(c(1,1,1,3,3,3,7,7,7),byrow = T,nrow=3))
apply(a,2,diff)

【讨论】:

    【解决方案2】:

    假设你有这个作为示例数据:

    df <- data.frame(date = as.Date(c("2019-01-03", "2019-01-04", "2019-01-05", "2019-01-06")), value = c(3,5,7,6))
    
            date value
    1 2019-01-03     3
    2 2019-01-04     5
    3 2019-01-05     7
    4 2019-01-06     6
    

    然后使用来自tidyversedplyr 你可以这样做:

    library(tidyverse)
    df2 <- df %>% 
      mutate(difference = lag(value, n=1L) - value)
    
            date value difference
    1 2019-01-03     3         NA
    2 2019-01-04     5         -2
    3 2019-01-05     7         -2
    4 2019-01-06     6          1
    

    ...您只需要决定如何处理行索引 1 中的第一个 NA。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多