我无法正确合并两个数据集。理想情况下,对于每个国家,year.y变量应比year.x变量晚3年,以解决滞后效应。但是,当我尝试合并时,year.y似乎是随机分配的。另外,该代码还导致行数不必要地增加,因为该特定国家/地区每年仅需要将year.x与year.y配对,而只需要将其与单个年(year.x +3)配对。] >
> dput(head(corruption)) #Corruption dataset structure(list(Jurisdiction_c = c("Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"), year = c("X2001_c", "X2002_c", "X2003_c", "X2004_c", "X2005_c", "X2006_c"), cpi = c(NA, NA, NA, NA, "2.5", NA)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))
> dput(head(resource_wealth)) #resource wealth dataset structure(list(Country.Name_r = c("Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"), year = c("X1998_r", "X1999_r", "X2000_r", "X2001_r", "X2002_r", "X2003_r"), resource_percentage = c(NA, NA, NA, NA, 1.11398250245278, 0.719357369114903)), row.names = c(NA, 6L), class = "data.frame")
这是我以前合并的行:
dataset_final <- merge(x = resource_wealth, y = corruption, by.x = "Country.Name_r", by.y = "Jurisdiction_c", all.x = TRUE)
> dput(head(dataset_final)) structure(list(Country.Name_r = c("Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"), year.x = c("X2005_r", "X2005_r", "X2005_r", "X2005_r", "X2005_r", "X2005_r"), resource_percentage = c(0.38440433910658, 0.38440433910658, 0.38440433910658, 0.38440433910658, 0.38440433910658, 0.38440433910658 ), year.y = c("X2012_c", "X2015_c", "X2007_c", "X2003_c", "X2001_c", "X2002_c"), cpi = c("8", "11", "1.8", NA, NA, NA)), row.names = c(NA, 6L), class = "data.frame")
这是期望的结果:
1 Afghanistan X1998_r <NA> X2001_c <NA>
2 Afghanistan X1999_r <NA> X2002_c <NA>
3 Afghanistan X2000_r <NA> X2003_c <NA>
4 Afghanistan X2001_r <NA> X2004_c <NA>
5 Afghanistan X2002_r 1.113983e+00 X2005_c 2.5
6 Afghanistan X2003_r 7.193574e-01 X2006_c <NA>
我无法正确合并两个数据集。理想情况下,对于每个国家,year.y变量应比year.x变量晚3年,以解决滞后效应。但是,当我尝试...
由于只剩下一个键,它将创建具有所有年份值的所有匹配观测值。一种方法是从列中提取年份值,并仅保留year_y
为year_x + 3
的年份。