【问题标题】:Lagging/Differencing Variables in R [duplicate]R中的滞后/差异变量[重复]
【发布时间】:2012-12-02 02:03:57
【问题描述】:

可能重复:
Basic lag in R vector/dataframe

试图在 R 中滞后一个变量,但它不起作用。

x<-1:10
y=lag(x,1)
xy=cbind(x,y)
View(xy)

    x   y
1   1   1
2   2   2
3   3   3
4   4   4
5   5   5
6   6   6
7   7   7
8   8   8
9   9   9
10  10  10

我仍然没有得到滞后。我究竟做错了什么?还有一种更快的方法可以在不使用 cbind/rbind 的情况下组合到向量/矩阵吗?例如

x=0:10
y=20:30
newxy=[x,y]

谢谢!

【问题讨论】:

标签: r


【解决方案1】:

lag() 需要一个时间序列。 (在 R 中,“ts”类是基本的时间序列类,用于表示在等间隔时间点采样的数据。有关更多信息,请参阅?ts。)因此,您可以将 x 转换为时间序列,如此处所示,或使用另一个答案中建议的方法之一。

x <- as.ts(1:10)
y <- lag(x,1)
xy <- cbind(x,y)
xy
#Time Series:
#Start = 0 
#End = 10 
#Frequency = 1 
#    x  y
# 0 NA  1
# 1  1  2
# 2  2  3
# 3  3  4
# 4  4  5
# 5  5  6
# 6  6  7
# 7  7  8
# 8  8  9
# 9  9 10
#10 10 NA

【讨论】:

    【解决方案2】:

    第二部分:

    newxy=matrix(c(x,y),ncol=2)
    
    > newxy
          [,1] [,2]
     [1,]    0   20
     [2,]    1   21
     [3,]    2   22
     [4,]    3   23
     [5,]    4   24
     [6,]    5   25
     [7,]    6   26
     [8,]    7   27
     [9,]    8   28
    [10,]    9   29
    [11,]   10   30
    

    【讨论】:

      【解决方案3】:

      embed 在这里是一个有用的函数,尤其是当您不想转换为 ts 对象时。

      x <- 1:10
      embed(x,2)
      
      
           [,1] [,2]
       [1,]    2    1
       [2,]    3    2
       [3,]    4    3
       [4,]    5    4
       [5,]    6    5
       [6,]    7    6
       [7,]    8    7
       [8,]    9    8
       [9,]   10    9
      

      【讨论】:

        猜你喜欢
        • 2014-06-11
        • 1970-01-01
        • 2010-11-21
        • 1970-01-01
        • 2015-10-29
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多