我的数据集中的日期是这样的:20130501000000,我正在尝试将其转换为 R 中更好的日期时间格式
data1$date <- as.Date(data1$date, format = "%Y-%m-%s-%h-%m-%s")
但是,我收到一个需要原点的错误。在我将日期下的第一个单元格作为原点后,它将日期下的每个单元格转换为 N/A。这是正确的还是我应该尝试 as.POSIXct()?
最佳答案
这是一种有点退化的格式,但 anytime()
和 anydate()
anytime 的功能package 可以帮助你,不需要任何明确的格式字符串:
R> anytime("20130501000000") ## returns POSIXct
[1] "2013-05-01 CDT"
R> anydate("20130501000000") ## returns Date
[1] "2013-05-01"
R>
并不是说我们在这里从字符表示中解析——从数字解析是错误的,因为我们使用冲突的启发式方法来理解存储数字值的日期。
所以在这里你的代码会变成
data1$data <- anytime::anydate(data1$date)
提供
data1$date
是字符,否则换一个 as.character()
周围。最后,如果你真的想要日期时间而不是日期(根据你的标题),不要使用
anydate()
但是 anytime()
.
关于r - 在 R 中将列设置为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41537045/