我有一个以下列格式提供的日期时间:
ex <-2008123118
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其转换为日期时间格式.我尝试:
mytime2 <- as.POSIXct(ex, format = "%Y%m%d%H")
Run Code Online (Sandbox Code Playgroud)
但收到错误:
Error in as.POSIXct.numeric(ex, format = "%Y%m%d%H") :
'origin' must be supplied
Run Code Online (Sandbox Code Playgroud)
错误似乎是直截了当的,但唯一的问题是,如果我不知道原点.例如,我的代码的这部分将进入一个更大的代码,将处理大量的文件.
我希望我的例子能够回归:
2008-12-31 18:00
Run Code Online (Sandbox Code Playgroud)
那可能吗?
有两个版本as.POSIXct的幕后工作,as.POSIXct.numeric并且as.POSIXct.character,你已经试过一次打电话给他们两个.因为该值以"数字"形式传入,所以它传递给as.POSIXct.numeric了这里实际上是错误的原因,因为as.POSIXct.numeric没有类似日期值的检测算法,也没有"格式"参数.强迫它"性格,一切都很好:
> ex <-2008123118
> mytime2 <- as.POSIXct(as.character(ex), format = "%Y%m%d%H")
> mytime2
[1] "2008-12-31 18:00:00 PST"
Run Code Online (Sandbox Code Playgroud)