向R中的日期添加日期

问题描述 投票:0回答:1

我有一个包含两列出发时间和到达时间的数据框。我想将到达时间与出发时间进行比较,如果到达时间大于出发时间,则将其加1。

departuretime         arrivaltime
<S3: POSIXct>         <S3: POSIXct>
2019-03-04 23:32:00 2019-03-04 03:55:00         
2019-03-05 01:38:00 2019-03-04 05:27:00         
2019-03-04 22:59:00 2019-03-04 06:45:00         
2019-03-04 22:40:00 2019-03-04 00:01:00         
2019-03-04 22:13:00 2019-03-04 00:08:00         
2019-03-04 22:38:00 2019-03-04 00:08:00         
2019-03-05 00:36:00 2019-03-04 04:19:00         
2019-03-04 22:12:00 2019-03-04 00:19:00         
2019-03-04 23:19:00 2019-03-04 02:13:00         
2019-03-04 21:27:00 2019-03-04 00:21:00

我已经尝试过以下代码

 mutate(if(departuretime > arrivaltime) {
    arrivaltime = ymd_hms(arrivaltime) + days(1)
  })

但是这似乎没有什么区别。我不确定为什么。

r lubridate
1个回答
0
投票

使用向量化的ifelse

library(dplyr)
library(lubridate)

df %>%
   mutate(arrivaltime = ifelse(departuretime > arrivaltime, 
                           arrivaltime + days(1), arrivaltime))
© www.soinside.com 2019 - 2024. All rights reserved.