我有一张这样的表:
dtab<-data.table(Arr.Dep=c("A","D"),
time=c("2017-05-01 04:50:00","2017-05-01 04:55:00"))
dtab[,time:=parse_date_time(dtab$time, c("%y-%m-%d %H:%M%S"))]
日期和时间列的操作似乎成功:
dtab[,time2:=time+2]
但是如果我尝试运行ifelse语句,POSIXct格式会回到数字状态,而我似乎无法将其恢复到日期和时间。
dtab[,time3:=ifelse(dtab[,Arr.Dep]=="A",dtab[,time]+2,"hello")]
我看到问题已经提出: R- date time variable loses format after ifelse
不幸的是,这对我没有太大的帮助,因为当我尝试按照这个例子 - 增加2秒而不是像OP中那样用NA替换 - 时,无论如何我都会遇到错误。 有什么帮助吗?
答案 0 :(得分:0)
使用库(lubridate)并添加时间dtab $ time2&lt; - dtab $ time2 + seconds(2)。使用此方法,格式不会更改。