【问题标题】:Turning column into POSIXct date/time series将列转换为 POSIXct 日期/时间序列
【发布时间】:2020-09-20 04:10:01
【问题描述】:

我正在尝试将我的数据框中 (str = 'character') 中具有以下格式的列重新配置:'MM/DD/YYYY HH:MM:SS' 到日期/时间序列列 (str = POSIXct)与 rmweather 包一起使用。

> DNO2$`Date & Time`
    `Date & Time`
    <dttm>  
[1] "31/12/2017 24:00" 
[2] "01/01/2018 01:00"
[3] "01/01/2018 02:00" 
[4] "01/01/2018 03:00"
[5] "01/01/2018 04:00" 
[6] "01/01/2018 05:00"

简而言之,我想从: 'MM/DD/YYYY HH:MM:SS' 到: 'YYYY-MM-DD HH:MM:SS'

我尝试使用 lubridate 包中的 as_datetime() 函数来执行此操作,但收到一个奇怪的输出:

> DNO_18$`Date & Time` <- as_datetime(DNO_18$`Date & Time`, tz="Europe/London")
> head(DNO_18)
# A tibble: 6 x 8
  `Date & Time`       Rathmines Ringsend `St John`
  <dttm>              <chr>     <chr>    <chr>           
1 2031-12-20 17:24:00 0.299999… 0.90000… NoData          
2 2001-01-20 18:01:00 0.299999… 0.80000… NoData          
3 2001-01-20 18:02:00 0.299999… 0.90000… NoData          
4 2001-01-20 18:03:00 0.100000… 0.80000… NoData          
5 2001-01-20 18:04:00 0.200000… 1        NoData          
6 2001-01-20 18:05:00 0.200000… 0.90000… NoData    

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: r date time posixct


    【解决方案1】:

    我们可以从base R使用as.POSIXct

    DNO_18$`Date & Time` <- as.POSIXct(DNO_18$`Date & Time`, format = "%d/%m/%Y %H:%M")
    

    lubridate

    library(lubridate)
    DNO_18$`Date & Time` <- dmy_hm(DNO_18$`Date & Time`)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 2017-05-17
      相关资源
      最近更新 更多