【发布时间】:2017-02-27 17:29:30
【问题描述】:
我真的坚持在 R 中做一个循环。我也尝试过使用 ifelse,但似乎无法得到结果。
我有一个如下数据框,其中显示了客户 ID、他们的旅行日期、模式和旅行开始时间:
ID | Date | Mode | Time
------ | --------- | ------- | -----
1234 | 12/10/16 | Bus | 120
1234 | 12/10/16 | Bus | 130
1234 | 12/10/16 | Bus | 290
1234 | 12/10/16 | Train | 310
1234 | 12/10/16 | Bus | 330
4567 | 12/10/16 | Bus | 220
4567 | 12/10/16 | Bus | 230
4567 | 13/10/16 | Bus | 290
4567 | 13/10/16 | Bus | 450
4567 | 14/10/16 | Train | 1000
所以在 12 月 10 日,客户 1234 做了 4 辆公共汽车和 1 辆火车。
我想创建第 5 列,用于标识旅程阶段是否链接,即第二旅程是否链接到第一旅程,第三旅程是否链接到第二旅程(其中 1 = 链接,0 = 未链接)。
需要满足以下条件:
jnys 是针对同一个人的,并且发生在同一天
2 趟巴士旅程彼此相距不到 60 分钟(因此巴士和火车旅程彼此相距不超过 60 分钟)
如果第i+1次和第i次行程联动,那么第i+1次行程不能和第i+2次行程联动
我希望输出如下:
ID | Date | Mode | Time | Linked
------ | --------- | ------- | ----- | -----
1234 | 12/10/16 | Bus | 120 | 0
1234 | 12/10/16 | Bus | 130 | 1
1234 | 12/10/16 | Bus | 290 | 0
1234 | 12/10/16 | Train | 310 | 0
1234 | 12/10/16 | Bus | 330 | 0
4567 | 12/10/16 | Bus | 220 | 0
4567 | 12/10/16 | Bus | 230 | 1
4567 | 13/10/16 | Bus | 290 | 0
4567 | 13/10/16 | Bus | 450 | 0
4567 | 14/10/16 | Train | 1000 | 0
任何帮助将不胜感激!
【问题讨论】:
-
非常感谢您自己表现出任何努力!
-
我真的什么都没有
标签: r loops if-statement dataframe