2017-08-16 62 views
2

我有一個包含定時數據的csv文件......現在,當我讀它使用read.csv.raw()它讀取時間山坳作爲字符--->如何防止[R取整秒

"19:56:05.938836" "19:56:06.269024" "19:56:06.868525" "19:56:15.080690" "19:56:15.422007" "19:56:16.132036" 

現在把它轉換到我使用chron::times()時間對象,這讓時間對象 - >

19:56:06 19:56:06 19:56:07 19:56:15 19:56:15 19:56:16 

顯然是四捨五入的時間......我不想,因爲我需要毫秒。 有沒有辦法將這個字符時間矢量轉換爲時間對象而沒有任何舍入?

更新---->

,所以我想這是(我需要) -

19:56:05 19:56:06 19:56:06 19:56:15 19:56:15 19:56:16 

隨着時間的對象,這樣我可以比較小時,分鐘等..

+0

也許如果你需要,你不需要小時和分鐘女士 ? –

+0

@Moody_Mudskipper請參閱最新的問題。對不明... –

+1

您的更新似乎有點混亂。你的意思是你想保持原來的精度(以毫秒爲單位),還是你的意思是你希望它總是向下舍入到最接近的秒? –

回答

3

您可以使用lubridate包來保持數據的完整精度。

times <- 
    c(
    "19:56:05.938836", 
    "19:56:06.269024", 
    "19:56:06.868525", 
    "19:56:15.080690", 
    "19:56:15.422007", 
    "19:56:16.132036" 
) 

hms(times) 
# [1] "19H 56M 5.938836S" "19H 56M 6.269024S" "19H 56M 6.868525S" "19H 56M 15.08069S" 
# [5] "19H 56M 15.422007S" "19H 56M 16.132036S" 
+0

非常感謝它的工作 –

3

您可以從您的字符串脫光「毫秒」和將其轉換成一個「時間」對象,如下所示:

> chron::times(sub("\\..*", "", "19:56:05.938836")) 
[1] 19:56:05