如何在 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
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
示例 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
广告