2012-12-05 39 views
2

你好,我需要转换日期时间字符像"20/2/06 11:16:16,683"和有困难做到这一点。 我已经尝试了经典的(没有逗号FOR毫):日期时间用逗号分隔毫秒格式中的R

R) strptime("20/2/06 11:16:16.683", "%d/%m/%y %H:%M:%OS") 
[1] "2006-02-20 11:16:16.682" 

这失败的格式,我有:

R) strptime("20/2/06 11:16:16,683", "%d/%m/%y %H:%M:%OS") 
[1] "2006-02-20 11:16:16" 

这太:

R) strptime("20/2/06 11:16:16,683", "%d/%m/%y %H:%M,%OS") 
[1] NA 

有没有一种办法直接做到这一点,或者我应该使用gsub像函数使用strptime之前更换,.

+1

这是非常相似[科隆在秒和毫秒之间的日期格式。如何R中解析?(http://stackoverflow.com/q/13613655/271616)。 –

+0

事实上......我们得出的结论同样的事情,所以都好 – statquant

回答

1

我认为你需要做手工转换。

这里我的建议不使用GSUB,但扫描

ll <- scan(text = "20/2/06 11:16:16,683",sep=',',what="character") 
as.POSIXct(ll[1],format=("%d/%m/%y %H:%M:%OS"))+ as.numeric(ll[2])/1000 

[1] "2006-02-20 11:16:16.683 CET" 
+0

我没有看到这个答案毫秒.... – A5C1D2H2I1M1N2O1R2T1

+0

好吧,我认为它不能在一气呵成完成...... 我做了'myFun < - 功能(从){strptime(GSUB(图案= “ ”替换=,由“。 ”),格式=“ %米/%d /%Y%H:%M:%OS”)}' – statquant