我在 R data.frame 中有面板数据,其中包含 1989 年至 2008 年期间各国武装冲突的年份。但是,仅包括在给定年份经历过武装冲突的国家的观察结果。
数据集与此类似:
df <- data.frame(c("1989","1993","1998",
"1990","1995","1997"),
c(rep(c(750, 135), c(3,3))), c(rep(1,6)))
names(df)<-c("year","countrycode","conflict")
print(df)
year countrycode conflict
1 1989 750 1
2 1993 750 1
3 1998 750 1
4 1990 135 1
5 1995 135 1
6 1997 135 1
我现在想填补面板数据中的空白,但仅限于不超过三年的空白。例如,我想在第 1 行和第 2 行之间以及第 5 行和第 7 行之间添加行(间隔分别为 3 和 1 年),但既不在第 2 行和第 3 行之间,也不在第 4 和第 5 行之间(间隔分别为 4 年) . 在此过程之后,上面的 data.frame 将如下所示:
> df2 <- data.frame(c("1989","1990","1991","1992","1993","1998",
+ "1990","1995","1996","1997"),
+ c(rep(c(750, 135), c(6,4))), c(1,0,0,0,1,1,1,1,0,1))
> names(df2) <- c("year","countrycode","conflict")
> print(df2)
year countrycode conflict
1 1989 750 1
2 1990 750 0
3 1991 750 0
4 1992 750 0
5 1993 750 1
6 1998 750 1
7 1990 135 1
8 1995 135 1
9 1996 135 0
10 1997 135 1
我查看了plm
包裹(见这里),但在那里找不到任何答案。另外,我对 R 比较陌生,所以我会很高兴任何提示。