Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ifelse语句(R)之后无法从数字格式检索POSIXct_R_If Statement_Posixct - Fatal编程技术网

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

在ifelse语句(R)之后无法从数字格式检索POSIXct,r,if-statement,posixct,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"))] 但是,如果我尝试运行ifelse语句,POSIXct格式会返回到numeric,并且我似乎无法将其恢复到日期和时间 dtab[,time3:=ife

我有一张这样的桌子:

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"))]
但是,如果我尝试运行ifelse语句,POSIXct格式会返回到numeric,并且我似乎无法将其恢复到日期和时间

dtab[,time3:=ifelse(dtab[,Arr.Dep]=="A",dtab[,time]+2,"hello")]
我看到已经有人提出了这个问题:

不幸的是,这对我没有太大的帮助,因为当我尝试遵循这个例子时——增加2秒而不是像OP中那样用NA替换——我还是遇到了一个错误。
有什么帮助吗?

使用库(lubridate)并添加时间dtab$time2不,如果它不起作用,POSIXct格式将返回到数值格式。我猜问题源于内部使用ifelse运算符执行的操作。如果
ifelse
中的第三个参数也是日期,例如
If_else(Arr.Dep==“a”,time+2,time)
,则
dplyr
函数
If_else
解决了问题。但是,如果第二个和第三个参数的类型相同,例如,
date
,则此函数可以使用。是!很有效,非常感谢。
dtab[,time3:=ifelse(dtab[,Arr.Dep]=="A",dtab[,time]+2,"hello")]