循环多个语句

时间:2019-04-17 12:37:37

标签: r loops conditional 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")]

这可以工作,但很费时间。原因我需要针对每个边缘调整此代码。 我现在想做的是使我的代码自动化。这样我就不必手动更改idkey参数。

我猜想我需要将Keysids存储在一个列表中,然后构建一个遍历df的循环。

我是R语言的新手,我不知道如何建立这样的循环。因此,我希望有人对此有所了解。预先谢谢你!

0 个答案:

没有答案