Я хочу присвоить 1 в столбце ответа «data1», сопоставив столбец высоты data2 с его ближайшим значением высоты в соответствующих ID1 и ID2.
здесь я выбрал образец большого набора данных как для демонстрации.
data1:
structure(list(ID1 = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2), ID2 = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L, 2L, 7L, 7L, 7L, 7L, 7L, 9L, 9L, 9L, 9L, 9L), altitude = c(0L,
500L, 1000L, 1500L, 2000L, 0L, 500L, 1000L, 1500L, 2000L, 0L,
500L, 1000L, 1500L, 2000L, 0L, 500L, 1000L, 1500L, 2000L), response = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L)), row.names = c(NA, -20L), class = "data.frame")
data2
structure(list(ID1 = c(1, 1, 2, 2), ID2 = c(1L, 2L, 7L, 9L),
altitude = c(500L, 1920L, 128L, 261L), response = c(1L, 1L,
1L, 1L)), row.names = c(NA, -4L), class = "data.frame")
ожидаемый результат: