统一数据的“日期时间”格式

问题描述

由于我的数据库/导出中的错误我有一个不一致的时间戳 - 有时有秒,有时没有 - 我怎样才能轻松地统一它?

例如带有 X1 = col_datetime(format = "%d.%m.%Y %H:%M:%s") 的 read_csv 无法正常工作。

我的数据如下所示:

X1,X2
24.02.2012 22:00,'121'
24.02.2012 22:15:00,'122'
24.02.2012 22:30:00,'124'
24.02.2012 22:45:00,'122'
24.02.2012 23:00,'121'

谢谢!

解决方法

anytime 可以通过额外的格式条目来处理它(因为 d.m.Y 可能会与 m.d.Y 混淆,我们默认情况下不会添加它,通过输入它您可以做出更明智的选择)。

> times <- c("24.02.2012 22:00","24.02.2012 22:15:00","24.02.2012 22:30:00",+            "24.02.2012 22:45:00","24.02.2012 23:00") 
> library(anytime)  
> addFormats("%d.%m.%Y %H:%M:%S")       
> anytime(times)      
[1] "2012-02-24 22:00:00 CST" "2012-02-24 22:15:00 CST" "2012-02-24 22:30:00 CST"
+   "2012-02-24 22:45:00 CST" "2012-02-24 23:00:00 CST"     
>  

因此您可以通过

覆盖您的列或添加新列
> library(anytime)  
> addFormats("%d.%m.%Y %H:%M:%S")       
> X1$parsed <- anytime(X1$raw_dates)

(假设您在该列的 X 中有数据)添加如图所示的格式后。格式被添加到已知的向量中 仅用于当前会话的格式。