我有两种数据集。
一个是人在电梯上的数据,一个是电梯到达一楼的数据。
这是乘过电梯的人的数据
usercode board time(sec)
1 165
2 167
3 170
4 340
5 351
6 820
7 830
8 1200
9 1201
10 1400
这是电梯时刻表的数据
elevator code arrival time
1 164
2 338
3 813
4 1175
5 1367
我想要的是
usercode board time(sec) elevator code elevator arrival time
1 165 1 164
2 167 1 164
3 170 1 164
4 340 2 338
5 351 2 338
6 820 3 813
7 830 3 813
8 1200 4 1175
9 1201 4 1175
10 1400 5 1367
救救我!!请
最佳答案
您可能需要考虑在 data.table
中使用滚动连接,如下所示:
arrival[people, on="arrivaltime_sec", roll=Inf]
# elevatorcode arrivaltime arrivaltime_sec usercode
# 1: 1 164 165 1
# 2: 1 164 167 2
# 3: 1 164 170 3
# 4: 2 338 340 4
# 5: 2 338 351 5
# 6: 3 813 820 6
# 7: 3 813 830 7
# 8: 4 1175 1200 8
# 9: 4 1175 1201 9
# 10: 5 1367 1400 10
数据:
library(data.table)
people <- fread("usercode,arrivaltime_sec
1,165
2,167
3,170
4,340
5,351
6,820
7,830
8,1200
9,1201
10,1400")
arrival <- fread("elevatorcode,arrivaltime
1,164
2,338
3,813
4,1175
5,1367")
arrival[, arrivaltime_sec := arrivaltime]
关于r - 如何在 R 中匹配两个具有约束的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49003025/