2016-03-19 59 views
0

這是我的#2的第一個問題,所以我道歉,如果我犯任何錯誤..R和Posix的:導入次進入數據幀導致丟失信息

我試圖導入R A數據幀,其中包含3行,其中第一個時間表示爲:「分鐘:秒,毫秒」。例如:「05:02,159」。

每當我嘗試導入時間,保持毫秒,整個時間似乎重置。

一個例子代碼是下面,與以相同的格式的時間,因爲它是在數據幀:

> time1 <- "00:00,05" 
> time1 
[1] "00:00,05" 

上述信息被正確地保持。然後我嘗試將char對象轉換爲POSIX對象。

> time2 <- as.POSIXct(strptime(time1,"%M:%OS")) 

當我嘗試想象「時間2」,只顯示日期

> time2 
[1] "2016-03-19 CET" 

當我嘗試格式化輸出,似乎時間信息已被複位

> strftime(time2,'%Y-%m-%d %H:%M:%OS3') 
[1] "2016-03-19 00:00:00.000" 
> strftime(time2,'%H:%M:%OS3') 
[1] "00:00:00.000" 

我也試過調整選項(digits.secs = 3)的設置,但沒有改變。

+1

這可能取決於您的語言環境;它在我的系統語言環境中使用點而不是逗號(即「00:00.05」')。 –

回答

2

用點替換逗號。

time1 <- "00:00,05" 
time2 <- as.POSIXct(strptime(gsub(",", ".", time1, fixed = TRUE),"%M:%OS")) 
strftime(time2,'%Y-%m-%d %H:%M:%OS4') 
#[1] "2016-03-19 00:00:00.0499" 

請注意,浮點精度與此處相關。

+0

當我導入數據框時,我正確地將逗號設置爲小數點分隔符,但這與* chr *對象不相關,因爲時間列。謝謝! – fzara