У меня проблемы с объединением двух наборов данных. В идеале для каждой страны переменная year.y должна быть на 3 года позже, чем переменная year.x, чтобы учесть эффект запаздывания. Однако, когда я пытаюсь объединить, year.y, кажется, назначается случайным образом. Кроме того, код также приводит к тому, что количество строк увеличивается излишне, поскольку каждый год.x связан с каждым годом. Y для этой указанной c страны, когда его необходимо связать только с одним годом (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>