2012-07-12 18 views
1

我有毫秒數據的數據集,我用下面的代碼將其轉換爲一個日期/時間:談到第二個數據轉換成數字

> cl1$date <- strptime(cl1[,1], "%Y-%m-%d %H:%M:%OS") 
> head(cl1$date) 

[1] "2012-06-06 10:30:00.4" "2012-06-06 10:30:00.5" "2012-06-06 10:30:00.6" 
[4] "2012-06-06 10:30:00.7" "2012-06-06 10:30:00.8" "2012-06-06 10:30:00.9" 
...  
[71935] "2012-06-27 10:59:55.28" "2012-06-27 10:59:55.38" "2012-06-27 10:59:55.48" 
[71938] "2012-06-27 10:59:55.58" "2012-06-27 10:59:55.68" "2012-06-27 10:59:55.78" 

但現在我想將它們從"2012-06-27 10:59:55.28"轉移到"2012-06-27 10:59:55.3" (即毫秒僅有一位小數)。我該怎麼做才能修改它?

回答

2
ttt<-as.POSIXlt("2012-06-27 10:59:55.28") 

options(digits.secs=1) 
ttt 
[1] "2012-06-27 10:59:55.2" 

options(digits.secs=2) 
ttt 
[1] "2012-06-27 10:59:55.28" 

ttt$sec<-round(ttt$sec,1) 
ttt 
[1] "2012-06-27 10:59:55.3" 

as.character(ttt) 
[1] "2012-06-27 10:59:55.3" 
+0

嗨,謝謝,這是非常有幫助的。我也試圖只使用as.POSIXlt,它的工作原理,我只是感到困惑,這是否意味着在這裏沒有工作?或者他們之間有什麼區別? – user1489975 2012-07-13 14:35:00

+0

'strptime'應該工作。但是,如果您需要指定非標準日期時間格式,則只需要它。對於標準格式'as.POSIXlt'就足夠了。 – Roland 2012-07-13 16:30:18

相關問題