如何在 R 数据框中创建滞后列?
要在R数据框中创建滞后列,我们可以使用转换函数。
例如,如果我们有一个名为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