我的数据是这样的。 df是数据帧的名称
Status ArrivalDate ClosedDate
Closed 2015-12-01 04:40:24 2015-12-08 10:12:08
In Progress 2015-12-03 06:40:00
Pending 2015-12-12 08:40:54
Cancelled 2015-12-06 04:40:24 2015-12-18 11:33:50
状态有4个因素:已关闭,已取消,正在进行中,待处理 进行中和待定没有ClosedDates
我想创建另一个列,只有在状态为已关闭或已取消时才会给出ArrivalDate和ClosedDate之间的时差。
这是我现在使用的代码:
df$Life[df$Status=="Closed"|df$Status=="Cancelled"]<-difftime(df$Arrival.Date,df$Closed.Date)
这是我收到的错误消息
as.POSIXlt.character(x,tz,...)出错: 字符串不是标准的明确格式
PS:当我尝试两个日期时,difftime()
正常工作。当扩展到整个列时,它会显示错误。
答案 0 :(得分:0)
df$Life[df$Status=="Closed"|df$Status=="Cancelled"]<-difftime(as.POSIXct(df$Arrival.Date, format='%d-%m-%Y %H:%M:%S'),as.POSIXct(df$Closed.Date, format='%d-%m-%Y %H:%M:%S'))
假设您的日期是欧洲(DMY)格式,如果它们是美国(MYD),只需交换%m
和%d
。