R如何比较两个数据帧并按第二个数据帧中的条件对第一个数据帧进行分组?

时间:2019-02-14 17:59:10

标签: grouping summarization

我要您帮助我进行分析。 有四个城市起源地区O1,O2,O3和O4。正在从这些地区出发,在10分钟的时间间隔内到达另一个目的地地区D1,D2,D3和D4。

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 km。这意味着,例如,如果目的地区域和时间间隔相同,则可以合并来自起点区域O1和O2的行程。 源区域之间的距离在df1中给出。

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 km。 必须在df2中找到其他可以合并的起源区域。这些合并的起源区域的目的地区域必须相同。否则,只会发生始发地和目的地地之间的一次旅行。

非常感谢您的帮助

0 个答案:

没有答案