【问题标题】:convert to date and strip time?转换为日期和剥离时间?
【发布时间】:2017-11-18 13:34:58
【问题描述】:

我有一些看起来像这样的数据:

dates <- structure(c(1L, 2L, 4L, 3L), .Label = c("Sat, 18 Nov 2017 00:00:00 GMT", 
                                             "Thu, 16 Nov 2017 00:00:00 GMT", "Tue, 14 Nov 2017 00:00:00 GMT", 
                                             "Wed, 15 Nov 2017 00:00:00 GMT"), class = "factor")

我想将其转换为日期格式,而不是将其作为一个因素。另外,我想去掉格林威治标准时间 00:00:00,因为它没有意义

我尝试了lubridate,但我遇到了格式问题:

library(lubridate)
mdy(dates)
Warning message:
All formats failed to parse. No formats found.

【问题讨论】:

    标签: r lubridate strptime


    【解决方案1】:

    看起来它正在工作:

    as.POSIXct(dates, format = '%a, %d %b %Y %H:%M:%S')
    #[1] "2017-11-18 GMT" "2017-11-16 GMT" "2017-11-15 GMT" "2017-11-14 GMT"
    

    【讨论】:

      【解决方案2】:

      我们也可以使用lubridate 包中的dmy_hms

      library(lubridate)
      
      dmy_hms(dates, tz = "GMT")
      # [1] "2017-11-18 GMT" "2017-11-16 GMT" "2017-11-15 GMT" "2017-11-14 GMT"
      

      【讨论】:

      • 要完全剥离时间,你可以用 as.Date() 像这样包装它:as.Date(dmy_hms(dates, tz = "GMT"))
      【解决方案3】:

      像这样使用as.Date。它最后会忽略垃圾,因此可以正常工作。没有使用任何包。

      as.Date(dates, "%a, %d %b %Y")
      ## [1] "2017-11-18" "2017-11-16" "2017-11-15" "2017-11-14"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-26
        相关资源
        最近更新 更多