【发布时间】:2020-01-14 15:28:35
【问题描述】:
我正在尝试将字符转换为 R 中的日期。
我的数据格式如下:
df <- data.frame(Date = c("23Jul2019 11:51:09 AM","23Jul2019 11:53:09 AM","19Jul2019 2:30:06 PM","01Aug2019 3:00:17 PM"))
根据此处找到的解决方案: Convert character to Date in R
我可以使用
> as.Date(df$Date, "%d/%b/%Y %I:%M:%S %p")
[1] NA NA NA NA
%I 用于十进制小时 (12h) 和 %p 特定于区域设置的 AM/PM (https://www.stat.berkeley.edu/~s133/dates.html),但由于某种原因,它返回 NA。
我的目标是在将字符格式的日期转换为 R 中的日期后,按日期和时间对数据框的行进行排序。
我使用的代码有什么问题?
【问题讨论】:
-
试试这个:
anytime::anydate(df$Date) -
它可以获取日期但不能获取时间
-
您的格式需要与您的数据中实际拥有的内容相匹配。您的日期不是用
"%d/%b/%Y"写的,而是用"%d%b%Y"写的 -
另外,
as.Date用于日期,而不是日期时间。你想要一个 POSIX,而不是 Date 对象 -
试试
as.POSIXct(df$Date, format = "%d%b%Y %H:%M:%S %p")你的格式有几个错误。分隔斜线,您将小时定义为%I而不是%H
标签: r date time data-conversion