【发布时间】:2020-05-07 02:00:40
【问题描述】:
我有一个预定的行程数据集如下:
bktrips <- data.frame(
userID =c("P001", "P001", "P001", "P001", "P001", "P002", "P002", "P002", "P002"),
mode = c("bus", "train", "taxi", "bus", "train", "taxi","bus", "train", "taxi"),
Origin = c("O1", "O2", "O3", "O4", "O5", "O6", "O7", "O8", "O9"),
Destination = c("D1", "D2", "D3", "D4", "D5", "D6", "D7","D8", "D9" ),
depart_dt = c("2019-11-05 8:00:00","2019-11-05 8:30:00", "2019-11-05 11:00:00", "2019-11-05 11:40:00", "2019-11-06 8:00:00", "2019-11-06 9:10:00", "2019-11-07 8:00:00", "2019-11-08 8:00:00", "2019-11-08 8:50:00"),
Olat = c("-33.87085", "-33.87138", "-33.79504", "-33.87832", "-33.89158", "-33.88993", "-33.89173", "-33.88573", "-33.88505"),
Olon = c("151.2073", "151.2039", "151.2737", "151.2174","151.2485", "151.2805","151.2469", "151.2169","151.2156"),
Dlat = c("-33.87372", "-33.87384", "-33.88323", "-33.89165", "-33.88993", "-33.89177", "-33.88573", "-33.87731", "-33.88573"),
Dlon = c("151.1957", "151.2126", "151.2175", "151.2471","151.2471", "151.2805","151.2514", "151.2175","151.2169")
)
现在我需要重组这个已预订的旅行数据集,以准备一个链接的旅行数据集。
例如,将公共汽车和火车旅行(通过相同的用户 ID,P001)链接到一个链接的旅行中,并重新定义此旅程的起点和目的地(分别为 O1 和 D2)。
我们需要使用规则来链接行程(同一个用户ID的行程,上一个行程的目的地在下一个行程的起点附近(1公里以内),上一个行程结束和下一个行程出发的时间间隔小于60分钟)。
在预定行程数据集中,变量为:
- Olat = 原纬度
- Olon = 原点经度
- Dlat = 目的地纬度
- Dlon = 目的地经度
有人可以帮我吗?我是 R 的新用户。非常感谢。
【问题讨论】:
-
感谢 Ben 的精彩编辑。你能帮我解决这个问题吗?
-
“上一次旅行结束”(到达日期/时间)在哪里?
-
感谢 Edward 的询问。在我的实际数据中,大部分到达时间都丢失了。
标签: r tidyverse tidyr sf spread