我有一個數據框在R,我已經從CSV導入。在CSV的 「時間」 的格式是 「%Y-%間 - %d%H:%M:%S」,例如:lubridate轉換午夜時間戳返回不適用:如何填寫缺少的時間戳
> head(btc_data)
time btc_price
1 2017-08-27 22:50:00 4,389.6113
2 2017-08-27 22:51:00 4,389.0850
3 2017-08-27 22:52:00 4,388.8625
4 2017-08-27 22:53:00 4,389.7888
5 2017-08-27 22:56:00 4,389.9138
6 2017-08-27 22:57:00 4,390.1663
當運行str(btc_data)
時間列回來爲一個因素。
btc_data$time <- ymd_hms(as.character(btc_data$time))
的問題是在午夜(5行)中收集的數據無法解析,並返回NA值像這樣(在原始數據的時間戳:因此,我已經採用lubridate包如下轉化這對日期時間從這些行,以便2017-08-29 00:00:00
列出簡稱爲2017-08-29
)缺失 -
724 2017-08-28 23:59:00 4,439.3313
725 NA 4,439.6588
726 2017-08-29 00:01:00 4,440.3050
此外,第二數據幀被不同地組織:
> str(eth_data)
'data.frame': 1081 obs. of 2 variables:
$ time : Factor w/ 1081 levels "8/28/17 16:19",..: 1 2 3 4 5 6 7 8 9 10 ...
$ eth_price: num 344 344 344 344 343 ...
當我嘗試:
> eth_data$time <- mdy_hms(as.character(eth_data$time))
我收到以下錯誤:
Warning message: All formats failed to parse. No formats found.
編輯:我已經分離的代碼問題是造成問題的原因:
> btc_data[721:726,]
time btc_price
721 2017-08-28 23:57:00 4,439.8163
722 2017-08-28 23:58:00 4,440.2363
723 2017-08-28 23:58:00 4,440.2363
724 2017-08-28 23:59:00 4,439.3313
725 2017-08-29 4,439.6588
726 2017-08-29 00:01:00 4,440.3050
所以,每次午夜時鐘敲響時,都不記錄時間戳。 CSV正在通過數據流創建並不斷增長,所以除非我能找到解決方法,否則每個新的一天都會繼續發生此問題。有什麼建議麼?
請包括失敗的行。 –
請參閱我的編輯 - 我添加了失敗的行,第二個df完全失敗。 – zsad512
在lubridate有機會混搭它之前向我們顯示* text *。是00:00:00還是24:00:00? – Spacedman