R Как можно сравнить два фрейма данных и сгруппировать первый фрейм данных по критериям из второго фрейма данных? - PullRequest
0 голосов
/ 14 февраля 2019

Я прошу Тебя помочь мне с моим анализом.Есть четыре городских района происхождения O1, O2, O3 и O4.Из этих районов совершаются поездки в другие районы назначения D1, D2, D3 и D4 в течение интервала времени 10 минут.

time_interval_10_min<-c("10:00", "10:00","10:00","10:00","10:10", "10:10","10:10","10:10","10:20", "10:20","10:20","10:20","10:30", "10:30", "10:30", "10:30")
origin<-c("O1", "O2", "O3", "O3", "O2", "O3", "O4", "O2", "O3", "O1","O2", "O4", "O3", "O1", "O2", "O1")
destination<-c("D1", "D1", "D2", "D4", "D4", "D2", "D4", "D4", "D2", "D2", "D4", "D4", "D1", "D2", "D1", "D1")
df2<-as.data.frame(cbind(time_interval_10_min,origin,destination))

enter image description here

поездки, которые начинаются из исходных районов, между которыми расстояние меньше или равно (<=) 0,5 км, могут быть объединены.Это означает, например, что поездки из исходных районов O1 и O2 могут быть объединены, если район назначения и интервал времени совпадают.Расстояния между районами происхождения указаны в df1. </p>

origin_district<-c("O1", "O1","O1","O2", "O2","O2", "O3", "O3","O3","O4","O4","O4")
district<-c("O2", "O3", "O4", "O1", "O3", "O4", "O1", "O2", "O4", "O1", "O2", "O3")
distance_km<-c(0.3, 0.9,0.8,0.2,0.4,0.5,0.7,0.1,0.6,0.8,0.3,0.7)
df1<-as.data.frame(cbind(origin_district,district, distance_km))
df1$Label<- as.numeric(factor(df1$origin_district))

enter image description here

Я обозначил каждую группу районов происхождения.В df2 указаны поездки между районами отправления и назначения.В результате я хотел бы получить сумму поездок между районами отправления и назначения (или группой районов происхождения) за интервал времени.В результате я хотел бы получить что-то вроде этого: enter image description here Прежде всего, алгоритм должен отсортировать данные по временному интервалу.Затем должен быть найден первый элемент столбца «происхождение» фрейма данных df2 за промежуток времени.Этот первый элемент необходимо сравнить с df1, чтобы выяснить, какие районы происхождения находятся на расстоянии <= 0,5 км от него.Чем в df2 должны быть найдены другие районы происхождения, которые можно было бы объединить.Район назначения этих комбинированных районов происхождения должен быть одинаковым.В противном случае происходит только одна поездка между районами отправления и назначения. </p>

Большое спасибо заранее за помощь

...