如何在 R 資料框中建立滯後列?


要在一個 R 資料框中建立滯後列,我們可以使用 `transform` 函式。

例如,如果我們有一個名為 `df` 的資料框,其中包含一個名為 `C` 的列,並且我們想要基於 `C` 在 `df` 中建立一個滯後列,那麼我們可以使用下面給出的命令:

transform(df,Lag_C=c(C[-1],NA))

示例 1

下面的程式碼片段建立一個示例資料框:

x<-rnorm(20)
df1<-data.frame(x)
df1

建立瞭如下資料框:

       x
1  -0.58699645
2  -1.74183976
3  -0.80306205
4  -0.80224690
5   0.01596175
6  -0.36427931
7  -0.33449380
8   1.62647476
9  -1.71252529
10  0.02802091
11  1.27800967
12  0.41098805
13 -1.46857510
14 -0.76261265
15  0.16337484
16 -0.75678517
17 -0.26163702
18  0.75312452
19  0.40915108
20 -2.47741638

要建立 x 的滯後列,請將以下程式碼新增到上面的程式碼片段中:

x<-rnorm(20)
df1<-data.frame(x)
transform(df1,Lagged_x=c(x[-1],NA))

輸出

如果你將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出:

       x         Lagged_x
1  -0.58699645  -1.74183976
2  -1.74183976  -0.80306205
3  -0.80306205  -0.80224690
4  -0.80224690   0.01596175
5   0.01596175  -0.36427931
6  -0.36427931  -0.33449380
7  -0.33449380   1.62647476
8   1.62647476  -1.71252529
9  -1.71252529   0.02802091
10  0.02802091   1.27800967
11  1.27800967   0.41098805
12  0.41098805  -1.46857510
13 -1.46857510  -0.76261265
14 -0.76261265   0.16337484
15  0.16337484  -0.75678517
16 -0.75678517  -0.26163702
17 -0.26163702   0.75312452
18  0.75312452   0.40915108
19  0.40915108  -2.47741638
20 -2.47741638   NA

示例 2

下面的程式碼片段建立一個示例資料框:

y<-rpois(20,6)
df2<-data.frame(y)
df2

建立瞭如下資料框:

    y
1   8
2   4
3   4
4   6
5   5
6  10
7   6
8   2
9   8
10  3
11  6
12  6
13 12
14  9
15  1
16  5
17 13
18  5
19  5
20  1

要建立 y 的滯後列,請將以下程式碼新增到上面的程式碼片段中:

y<-rpois(20,6)
df2<-data.frame(y)
transform(df2,Lagged_y=c(y[-1],NA))

輸出

如果你將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出:

    y Lagged_y
1   8  4
2   4  4
3   4  6
4   6  5
5   5 10
6  10  6
7   6  2
8   2  8
9   8  3
10  3  6
11  6  6
12  6 12
13 12  9
14  9  1
15  1  5
16  5 13
17 13  5
18  5  5
19  5  1
20  1 NA

更新於:2021-11-12

2K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.