首页 > 解决方案 > 如何防止日期在 r 中操作后失真

问题描述

数据在 R 中被多次操作并以 csv 或 xlsx 格式导出。

在 excel 中,原始日期看起来很正常:(time = c("2016-08-10 09:30:01", "2016-08-11 09:30:01", "2016-08-12 09:30:01", "2016-08-13 09:30:01", "2016-08-14 09:30:01", "2016-08-15 09:30:01")但是在再次读入 R 并绘制在图表中之后,它被扭曲并且看起来像0001-01-16, 0001-01-16, 0001-02-16在图表上。

我怎样才能更改日期并使其正常?非常感谢。

标签: rdata-cleaning

解决方案


如果您正确解析此输入,则应该可以正常工作。在这里,我们使用对输入类型和格式健壮anytime()anytime包:

R> library(anytime)
R> time <- c("2016-08-10 09:30:01", "2016-08-11 09:30:01", "2016-08-12 09:30:01", 
+            "2016-08-13 09:30:01", "2016-08-14 09:30:01", "2016-08-15 09:30:01")
R> anytime(time)
[1] "2016-08-10 09:30:01 CDT" "2016-08-11 09:30:01 CDT" "2016-08-12 09:30:01 CDT"
[4] "2016-08-13 09:30:01 CDT" "2016-08-14 09:30:01 CDT" "2016-08-15 09:30:01 CDT"
R> 

这些现在是POSIXct对象,因此您可以使用它们来绘制、分析、总结......

R> diff(anytime(time))
Time differences in days
[1] 1 1 1 1 1
R> 

@42 的评论仍然是正确的:你的问题几乎没有细节和细节。


推荐阅读