我使用OmegaHat的RGoogleDocs包將我的Google表格電子表格導入到R. 其中一些包含日期數據,時間數據和日期/時間數據。Google表格導入到R的日期和時間對象
在導入到R後,RGoogleDocs會將日期和時間轉換爲十進制數字,推測可能是從開始引用1900-1-1(或1899-12-30)開始的秒數。
這對日期來說不是問題,因爲我只需使用as.Date()
即可將其轉換。 但是,時間數據是一個巨大的麻煩。
我知道我可以使用as.POSIXct()
或as.POSIXlt()
但是,這並不能準確地將十進制數轉換回日期和時間。
Observe:
Timestamp:
2/10/2014 19:22:40; 2/10/2014 19:52:07; 2/10/2014 20:14:47;
2/10/2014 21:08:03; 2/11/2014 11:05:39; 2/11/2014 12:21:40;
2/11/2014 12:44:33; 2/11/2014 16:08:54; 2/11/2014 16:31:44;
2/12/2014 10:54:31; 2/12/2014 11:38:15; 2/12/2014 11:56:18;
2/12/2014 12:31:53; 2/12/2014 14:42:46; 2/12/2014 15:03:36;
2/13/2014 14:38:17; 2/13/2014 15:08:45; 2/13/2014 16:39:27;
2/13/2014 17:18:45; 2/13/2014 19:14:23; 2/19/2014 15:01:16;
2/19/2014 15:05:43;
RGoogleDocs'進口版本:
> mydata$"Timestamp"
[1] 41680.81 41680.83 41680.84 41680.88 41681.46 41681.52 41681.53 41681.67
[9] 41681.69 41682.45 41682.48 41682.50 41682.52 41682.61 41682.63 41683.61
[17] 41683.63 41683.69 41683.72 41683.80 41689.63 41689.63
轉換後:
as.POSIXct(mydata$"Timestamp"*86400, origin = "1899-12-30")
[1] "2014-02-11 00:22:40 PKT" "2014-02-11 00:52:07 PKT" "2014-02-11 01:14:47 PKT"
[4] "2014-02-11 02:08:02 PKT" "2014-02-11 16:05:39 PKT" "2014-02-11 17:21:40 PKT"
[7] "2014-02-11 17:44:33 PKT" "2014-02-11 21:08:54 PKT" "2014-02-11 21:31:44 PKT"
[10] "2014-02-12 15:54:31 PKT" "2014-02-12 16:38:15 PKT" "2014-02-12 16:56:18 PKT"
[13] "2014-02-12 17:31:53 PKT" "2014-02-12 19:42:45 PKT" "2014-02-12 20:03:36 PKT"
[16] "2014-02-13 19:38:17 PKT" "2014-02-13 20:08:45 PKT" "2014-02-13 21:39:27 PKT"
[19] "2014-02-13 22:18:45 PKT" "2014-02-14 00:14:22 PKT" "2014-02-19 20:01:16 PKT"
[22] "2014-02-19 20:05:42 PKT"
不僅是時間不準確,誤差逐漸增加,在列表中向下。誰能幫忙?
你能提供一個鏈接到你的谷歌電子表格的公共版本(甚至只是時間戳列)嗎? – hrbrmstr
https://docs.google.com/spreadsheet/ccc?key = 0AqIRsZWcpw-gdEJZV01UVGNSWkxqSlI1VkRrN2NOdXc&usp = sharing – naveedpash