将带有NA的字符日期转换为日期格式 - 奇怪的东西?

时间:2016-10-17 15:09:01

标签: r date datetime

由于限制,我无法分享我的数据。请尝试使用以下信息提供解决方案 我有一个名为data的数据框。有变量我想转换成日期和时间格式。

[![在此处输入图像说明] [1]] [1]

data$Call_TimeStamp = as.POSIXct(paste(data$Local_call_Date, data$Local_call_Time.y), format= "%Y-%m-%d% %H:%M:%S", tz = 'GMT')



str(data$Call_TimeStamp)
   POSIXct[1:66288], format: NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 

但是当我对具有相同日期和时间格式的同一数据集的另一个变量运行查询时,它运行得很完美,唯一的区别是那些变量没有NA作为一个字符。

 data$Sent_TimeStamp=as.POSIXct(paste(data$Local_Sent_Date.x, data$Local_Sent_Time.x), format="%Y-%m-%d %H:%M:%S", tz = 'GMT')

1 个答案:

答案 0 :(得分:1)

两件事,一件好事,一件(可能)坏事:

  • 就时间字符串而言,您的数据采用合理的格式:ISO 8601 - 这使解析更容易

  • 您的数据很可能是因素形式,而您忘记了所需的as.character()

现在,最近发布的anytime软件包对两者都有帮助。以下是网页/ GH README.md中的一个示例:

R> ## factor
R> anytime(as.factor(20160101 + 0:2))
[1] "2016-01-01 CST" "2016-01-02 CST" "2016-01-03 CST"

它还将解析日期和时间,有或没有因子表示,仍然不需要格式:

R> anytime("2016-01-02 03:04:05.678")
[1] "2016-01-02 03:04:05.677 CST"
R> anytime(as.factor("2016-01-02 03:04:05.678"))
[1] "2016-01-02 03:04:05.677 CST"
R> 

您可以直接从CRAN安装anytime

相关问题