0

我有日期为 MM/DD/YY HH:MM 格式的数据和其他普通旧 MM/DD/YY 格式的数据。我想将它们全部解析为与“2010-12-01 12:12 EST”相同的格式。我该怎么做呢?我尝试了以下 ifelse 语句,它给了我一堆长整数,并告诉我大量数据点无法解析:

df_prime$date <- ifelse(!is.na(mdy_hm(df$date)), mdy_hm(df$date), mdy(df$date))

df_prime 是df我最初加载的数据框的副本

  IEN          date admission_number KEY_PTF_45       admission_from                        discharge_to
1  12  3/3/07 18:05                1     252186         OTHER DIRECT                                
2  12  3/9/07 12:10                1     252186                      RETURN TO COMMUNITY-    INDEPENDENT
3  12 3/10/07 15:08                2     252382 OUTPATIENT TREATMENT                                
4  12 3/14/07 10:26                2     252382                      RETURN TO COMMUNITY-INDEPENDENT
5  12 4/24/07 19:45                3     254343         OTHER DIRECT                                
6  12 4/28/07 11:45                3     254343                      RETURN TO COMMUNITY-INDEPENDENT
...
1046334 23613488506       2/25/14               NA         NA                            
1046335 23613488506 2/25/14 11:27               NA         NA                            
1046336 23613488506       2/28/14               NA         NA                            
1046337 23613488506        3/4/14               NA         NA                            
1046338 23613488506 3/10/14 11:30               NA         NA                            
1046339 23613488506 3/10/14 12:32               NA         NA        

抱歉,如果某些格式不正确,但日期列是最重要的。

编辑:下面是通过dput命令为我的数据框的一部分的一些代码:

structure(list(IEN = c(23613488506, 23613488506, 23613488506, 23613488506, 23613488506, 23613488506), date = c("2/25/14", "2/25/14 11:27", "2/28/14", "3/4/14", "3/10/14 11:30", "3/10/14 12:32")), .Names = c("IEN", "date"), row.names = 1046334:1046339, class = "data.frame") 
4

2 回答 2

1

您是否尝试过 lubridate 包中的guess_formats() 函数?构建像您这样的数据框的可重现示例可能会有所帮助!

于 2014-08-12T16:01:49.890 回答
0

lubridatemdy_hm有一个truncated参数,可让您提供可能没有所有位的日期。对于您的示例:

> mdy_hm(d$date,truncated=2)
[1] "2014-02-25 00:00:00 UTC" "2014-02-25 11:27:00 UTC"
[3] "2014-02-28 00:00:00 UTC" "2014-03-04 00:00:00 UTC"
[5] "2014-03-10 11:30:00 UTC" "2014-03-10 12:32:00 UTC"
于 2014-08-12T16:19:14.307 回答