【问题标题】:In R, compute time series difference of lagged values在 R 中,计算滞后值的时间序列差
【发布时间】:2022-06-15 18:40:10
【问题描述】:

您好,我的数据框在很多年和产品中看起来都是这样的:

product<-c(1,2,3)
yr1<-c(109,213,30)
yr2<-c(613,488,125)
yr3<-c(729,494,127)
df<-data.frame(product,yr1,yr2,yr3)

我需要对其进行转换,以使第一个年份之后的值是当前值与前一个(滞后)值的差,使其看起来像这样:

yr2<-c(504,275,95)
yr3<-c(116,6,2)
df<-data.frame(product,yr1,yr2,yr3)

使用 613-109=504、729-613=116 等

我该怎么做?

【问题讨论】:

    标签: r


    【解决方案1】:

    试试

    df[,tail(grep("yr",colnames(df)),-1)]-df[,head(grep("yr",colnames(df)),-1)]
    
      yr2 yr3
    1 504 116
    2 275   6
    3  95   2
    

    【讨论】:

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