2012-12-05 40 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