【发布时间】:2017-03-02 00:03:36
【问题描述】:
我正在尝试安排我的面板数据集,以使用定期出现的滞后期的平均值创建新变量。我的示例数据集如下所示,可以使用以下代码访问
Time ID Value1 Value2
1 Jan-14 A 12 NA
2 Feb-14 A 14 NA
3 Mar-14 A 15 NA
4 Apr-14 A 18 NA
5 May-14 A 10 NA
6 Jun-14 A 12 13.67
7 Jul-14 A 13 15.67
8 Aug-14 A 14 14.33
9 Jan-14 B 32 NA
10 Feb-14 B 14 NA
11 Mar-14 B 15 NA
12 Apr-14 B 18 NA
13 May-14 B 20 NA
14 Jun-14 B 12 20.33
15 Jul-14 B 13 15.67
16 Aug-14 B 14 17.78
df<-structure(list(Time = structure(c(4L, 3L, 7L, 1L, 8L, 6L, 5L,
2L, 4L, 3L, 7L, 1L, 8L, 6L, 5L, 2L), .Label = c("Apr-14", "Aug-14",
"Feb-14", "Jan-14", "Jul-14", "Jun-14", "Mar-14", "May-14"), class = "factor"),
ID = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L), .Label = c("A", "B"), class = "factor"),
Value1 = c(12L, 14L, 15L, 18L, 10L, 12L, 13L, 14L, 32L, 14L,
15L, 18L, 20L, 12L, 13L, 14L)), .Names = c("Time", "ID",
"Value1"), class = "data.frame", row.names = c(NA, -16L))
我想创建一个名为 Value2 的新变量,考虑到每个观察的前 4-6 个月对应的 3 个月的平均值(这仅作为示例,我的每月数据集包含 40 个人的 12 年,并且我将不得不考虑超过 3 个月的延迟,也许是 14 个月)。这里我也需要考虑 ID,因为需要保留面板结构。对于所有未完成 3 个月前的观察,应注明为NA。例如Jun_14_A 应该得到从Mar_14_A 到Jan_14_A 的平均值。 (12+14+15)/3 =13.67
我参考了一些示例here,但这些示例并没有完全提供我正在寻找的特别滞后平均值,并且在没有前 3 个完整月的情况下指示为 NA 。
提前感谢您的帮助
【问题讨论】:
标签: r data.table dplyr panel lag