r - 循环多个 which 语句
问题描述
我有一个带有旅行数据的长格式 df。df 看起来像这样:
id from to traveltime Key departuretime arrivaltime (next stop)
1 2 3 00:01:00 301 08:15:00 08:16:00
1 2 3 00:01:00 301 08:30:00 08:31:00
1 2 3 00:01:00 301 08:45:00 08:46:00
2 3 4 00:02:00 301
2 3 4 00:02:00 301
2 3 4 00:02:00 301
1 5 6 00:01:00 302 09:00:00 09:01:00
1 6 7 00:01:00 302 09:01:00 09:02:00
2 7 8 00:01:00 302
现在我想填充空单元格。出发时间始终是到达时间和上一站的行程时间之和。所以预期的输出是:
id from to traveltime Key departuretime arrivaltime (next stop)
1 2 3 00:01:00 301 08:15:00 08:16:00
1 2 3 00:01:00 301 08:30:00 08:31:00
1 2 3 00:01:00 301 08:45:00 08:46:00
2 3 4 00:02:00 301 08:16:00 08:18:00
2 3 4 00:02:00 301 08:31:00 08:33:00
2 3 4 00:02:00 301 08:33:00 08:35:00
1 5 6 00:01:00 302 09:00:00 09:01:00
1 6 7 00:01:00 302 09:01:00 09:02:00
2 7 8 00:01:00 302 09:02:00 09:03:00
我写了一些运行良好的代码。但是我必须为我的 df 中的每个边缘调整代码。
data$arrivaltime <- data$departuretime + data$traveltime
data$departuretime[which(data$id =="2" & data$Key =="301")]<-data$arrivaltime[which(data$id == "1" & data$Key =="301")]
这会起作用,但它非常耗时。因为我需要为每个边缘调整此代码。我现在想要做的是?自动化我的代码。这样我就不必手动更改id
和参数。key
我想我需要将Keys
和存储ids
在一个列表中,然后构建一个循环遍历df
.
我是 R 新手,我不知道如何构建这样的循环。所以我希望有人对此有想法。先感谢您!
解决方案
推荐阅读
- html - 如何在 html/css 的移动视图中水平滚动方框?
- r - mocky 和 stubthat 和有什么不一样?
- node.js - Express Supertest 总是对 promise 中抛出的错误给出超时错误
- c++ - QTablewidget 稍后被扩展(或绘制)
- ios - 使用动画推送视图控制器会冻结 UI
- azure - Azure 媒体服务 v3 与 Azure 函数不兼容
- sql - TO_NUMBER 忽略逗号,即使它不在格式模型中
- python - 为什么多处理模块可以腌制调用匿名函数的函数?
- python - 在 Python/Gurobi 中关闭回调的输出标志
- node.js - 如何传递要在每个 Pug/Jade 模板上呈现的 Express 会话数据?