0

我的数据是这样的。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 个因素:Closed、Cancelled、In-Progress、Pending In-Progress 和 Pending 没有 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()当我尝试只使用两个日期时可以正常工作。当扩展到整个列时,它会显示错误。

4

1 回答 1

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),只需交换%mand %d

于 2016-05-20T07:19:01.780 回答