在ifelse语句(R)之后无法从数字格式检索POSIXct

时间:2017-06-28 10:41:52

标签: r if-statement posixct

我有一张这样的表:

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替换 - 时,无论如何我都会遇到错误。 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

使用库(lubridate)并添加时间dtab $ time2&lt; - dtab $ time2 + seconds(2)。使用此方法,格式不会更改。