R 使用dmy_hms将因子值转换为POSIXct将一半值转换为NA

R 使用dmy_hms将因子值转换为POSIXct将一半值转换为NA,r,na,posixct,R,Na,Posixct,我的目标是将数据集中的日期和时间列(两个因子值)连接到结构POSIXct的一列。这些列如下所示: 1 11.05.2016 09:45:00 2 11.05.2016 09:46:00 3 11.05.2016 09:47:00 4.11.05.2016 09:49:00 我首先尝试的是: D1 = paste(D$Date, D$Time) Date_Time = as.POSIXct(D1, format='%d.%m.%y %H:%M:%S') as.data.frame(Date_

我的目标是将数据集中的日期和时间列(两个因子值)连接到结构POSIXct的一列。这些列如下所示:

1 11.05.2016 09:45:00

2 11.05.2016 09:46:00

3 11.05.2016 09:47:00

4.11.05.2016 09:49:00

我首先尝试的是:

D1 = paste(D$Date, D$Time) 

Date_Time = as.POSIXct(D1, format='%d.%m.%y %H:%M:%S')

as.data.frame(Date_Time)
我得到的是每行的Na值。我无法找到原因,因此我尝试了使用lubridate软件包的另一种方法:

Date_Time = mdy_hms(D1,tz="")

Date_Time = as.data.frame(Date_Time)
控制台界面返回:“134021解析失败”,这大约是我数据的一半。转换后的数据几乎总是一个月前两周的日期和时间。我的问题是,为什么它会将一半的值转换为NA,我该如何解决这个问题?为什么它根本不能与as.POSIXct命令一起工作


谢谢。

您应该使用
Y
而不是
Y
四位数年份:

Date_Time = as.POSIXct(D1, format='%d.%m.%Y %H:%M:%S')

粘贴后
功能如果需要时间,也可以使用此功能


Date\u time您的
paste()
可能是错误的--请执行
粘贴(as.character(…),as.character(…)
。就是这样。我不敢相信,但它现在起作用了。当我重写代码时,我一定一次又一次地犯同样的错误。非常感谢您的快速回复。@CarolusFridericus欢迎您。既然你是SO新手,当你觉得答案有帮助时就接受它。
Date_Time = as.POSIXct(D1, format='%d.%m.%Y %H:%M:%S')