Мне нужно объединить два набора панельных данных, которые имеют разный размер. Эти наборы данных имеют географическую привязку по столбцам координат. Единицы в одном из наборов данных являются ячейками сетки, которые вместе охватывают весь мир. Координаты этого набора данных относятся к центроиду ячеек сетки. Другой набор данных содержит данные о конфликтах, а также координаты их возникновения.
Однако, когда я пытаюсь объединить эти наборы данных по координатам, конфликтные события не размещаются правильно по годам, что все портит. Я полагаю, что я могу «исправить» это, создавая повторяющиеся строки, в которых имеется несколько конфликтных событий на год ячейки сетки, однако я понятия не имею, как это сделать.
Dataset1 (Grid-cell structure)
X gid row col xcoord ycoord imr_mean year
100 1 195 197 -81.75 7.25 200.00 1990
101 2 195 197 -81.75 7.25 200.00 1992
102 3 195 197 -81.75 7.25 200.00 1991
103 4 195 197 -81.75 7.25 200.00 1993
104 5 195 197 -81.75 7.25 200.00 1994
105 6 195 197 -81.75 7.25 200.00 2000
106 7 195 197 -81.75 7.25 200.00 2001
107 8 195 197 -81.75 7.25 200.00 1998
108 9 195 197 -81.75 7.25 200.00 1999
109 10 195 197 -81.75 7.25 200.00 1996
110 11 195 197 -81.75 7.25 200.00 1995
Dataset 2 (Conflict events)
X eventid gwno xcoord ycoord ndeath year
32 400032 40 24.01 -81.84 41 1994
300 410041 41 18.53 -72.33 5 1990
302 410043 41 19.66 -72.55 8 1990
308 410049 41 18.43 -72.86 13 1990
313 410054 41 18.53 -72.33 14 1990
323 410062 41 18.53 -72.33 7 1990
325 410064 41 18.97 -74.26 12 1991
326 410065 41 18.53 -72.33 13 1991
424 410151 41 18.53 -72.33 5 1993
471 410205 41 18.29 -73.82 30 1994
Буду признателен за любые предложения!
РЕДАКТИРОВАТЬ: Я пытался разные коды, я напишу несколько примеров.
test <- merge(ds1, ds2, by.x = "xcoord", by.y = "ycoord")
test <- geo_join(ds1, ds2, by = c("xcoord", "ycoord"), max_dist = 27.5, unit = "km", mode = "full"
test <- geo_full_join(ds1, ds2, by = c(ds1$xcoord, ds2$xcoord), method = "haversine", unit = "km", max_dist = 27.5, distance_col = NULL)
Кажется, что geo_joins правильно размещают события по координатам, но не по годам. Мой желаемый результат должен был правильно разместить события по году и области. Например, представьте, что одна из строк в ds1 - это Нью-Йорк. В 1991 году в ds2 произошло три события, которые размещены в ячейке NY C. Как и сейчас, только одно из этих событий будет объединено корректно, то есть как по координатам, так и по году. Другие будут смещены по годам, потому что существует только одно наблюдение за клеточным годом в год. Я хочу, чтобы каждое событие конфликта было отдельной строкой. Я полагаю, с моим по общему признанию ограниченным знанием, что это можно исправить, дублируя строки в DS1, где есть несколько событий в DS2, происходящих в одном и том же клеточном году, однако я действительно изо всех сил пытаюсь найти способ сделать это.