1
У меня есть два фрейма данных: df1
(2000 строк) и df2
(100 000 строк). И я хочу:Как я могу извлечь строку из второго фрейма данных на основе пар данных из первого фрейма данных?
- Читать Шир/комбинацию из df1
- матча с Lat/длиной от df2
- Прочитайте соответствующий "м" значение df2
- Добавьте его в df1
Как я могу это сделать?
df1
lat long val
33.29083 -109.19556 12.5000
32.96583 -109.30972 11.5000
33.04944 -109.29528 1.7500
33.06444 -109.44167 1.7500
33.61944 -110.92083 0.2500
33.98000 -111.30278 3.7500
33.79806 -110.49917 1.00008
38.37972 -119.44917 3.2500
И
df2<-structure(list(lat = c(33.29, 32.96, 48.15, 48.1, 48.18, 48.14
), lon = c(-109.19, -109.31, -124.69, -124.69, -124.68, -124.68
), m = c(0.4713, 0.8998, 0.4891, 0.8418, 0.7998, 0.5292), flagar = c(0L,
1L, 0L, 1L, 1L, 0L), flagk = c(0L, 0L, 0L, 0L, 0L, 0L), flagsi = c(0L,
0L, 0L, 0L, 0L, 0L), flags2o = c(0L, 0L, 0L, 0L, 0L, 0L), flagap = c(0L,
0L, 0L, 0L, 0L, 0L), flagmt = c(0L, 0L, 0L, 0L, 0L, 0L), flagcn = c(0L,
0L, 0L, 0L, 0L, 0L), flagkf = c(1L, 1L, 1L, 1L, 1L, 1L), flagrd = c(1L,
1L, 1L, 1L, 1L, 1L), flagrv = c(2L, 2L, 2L, 2L, 2L, 2L), flagpt = c(1L,
1L, 1L, 1L, 1L, 1L)), .Names = c("lat", "lon", "m", "flagar",
"flagk", "flagsi", "flags2o", "flagap", "flagmt", "flagcn", "flagkf",
"flagrd", "flagrv", "flagpt"), row.names = c(NA, 6L), class = "data.frame")
В двух данных нет одинаковой точки lat/lon. Как вы хотите совместить? Точное местоположение не даст совпадений с данными примера. Вы хотите совместить на самом коротком расстоянии? – Jaap
Извините, фактические наборы данных имеют соответствующие баллы. Это подмножества, поэтому ... Я отредактирую его. – maximusdooku
Добавлено сейчас. Соответствие может быть до 2 десятичных точек – maximusdooku