【发布时间】:2021-10-21 22:50:25
【问题描述】:
我在 R 中遇到日期和时间格式问题。
我的 R 代码的格式为:“%Y%m%d %H%M%OS”。例如:“20170929 20:59:56.149”
在我的情况下,时间是字符变量。
我正在尝试编写一个 R 代码,其中格式类型将转换为格式“%Y-%m-%d %H:%M:%OS”
(data <- strptime(data$time,
format = "%Y-%m-%d %H:%M:%OS",
tz = "GMT"))
例如
data$time <- as.POSIXct(data$time, format = "%Y-%m-%d %H:%M:%OS")
但是,我得到了 NA。这可能是什么原因造成的?你知道如何解决它吗?提前感谢您的帮助!
【问题讨论】:
-
format参数告诉函数如何解析日期...当您指定 "%Y-%m-%d" - 函数会查找那些破折号 ("-")在您提供的示例字符串中不存在(使用“20170929”,您的格式参数应为“%Y%m%d”)。您的时间解析也是如此。 -
我认为你的核心误解是函数
as.Date或as. POSIXct不只是改变日期的格式......他们实际上试图转换一个类型(在你的大小写,一个字符/字符串)转换为date或POSIXct类型。 format 参数告诉这个转换函数如何解释字符串。将数据表示为POSIXct类型后,您可以使用不同的函数format生成具有某种所需形式的新字符串。
标签: r posixct strptime as.date posixlt