【发布时间】:2021-08-13 20:32:18
【问题描述】:
尝试将我的数据框中的列转换为日期时间。数据已作为'August 18, 2020 11:42' 格式的因子上传。
我尝试过使用 as.Date 格式:as.Date(calls$date_time, "%B %d, $Y %H:%M")
但它返回NA
我怎样才能修复这个 as.Date 以提供日期时间输出?
【问题讨论】:
尝试将我的数据框中的列转换为日期时间。数据已作为'August 18, 2020 11:42' 格式的因子上传。
我尝试过使用 as.Date 格式:as.Date(calls$date_time, "%B %d, $Y %H:%M")
但它返回NA
我怎样才能修复这个 as.Date 以提供日期时间输出?
【问题讨论】:
我们可以在将因子转换为字符后使用lubridate包中的mdy_hm函数:
library(lubridate)
a <- as.factor("August 18, 2020 11:42")
mdy_hm( as.character(a))
输出:
[1] "2020-08-18 11:42:00 UTC"
【讨论】:
应该是%Y而不是$Y,如果我们需要日期时间而不是Date类,也可以更改为as.POSIXct
as.POSIXct(str1, format = '%B %d, %Y %H:%M')
[1] "2020-08-18 11:42:00 EDT"
即在 OP 的代码中
as.POSIXct(calls$date_time, "%B %d, %Y %H:%M")
这会更容易,即如果我们使用来自anytime 的anytime/anydate(无需处理拼写错误)
library(anytime)
anytime(str1)
[1] "2020-08-18 11:42:00 EDT"
anydate 转换为 Date 类
str1 <- 'August 18, 2020 11:42'
【讨论】: