2017-03-15 95 views
0

我有一個變量,其中包含的值約爲 「時間間隔的開始時間,表示爲UTC時間1970年1月1日從Unix Epoch經過的毫秒數。」(根據數據源元數據)將數字變量轉換爲POSIXct

這是頭:

X $ timeInt [1] 1.388068e + 12 1.388075e + 12 1.388096e + 12 1.388051e + 12 1.388051e + 12 1.388072e + 12

所以我嘗試將其轉換爲POSIXct

as.POSIXct(x$timeInt, origin = '01-01-1970',tz='UTC') 

,但我得到這個結果

[1] "43987-03-01 05:20:00 UTC" "43987-05-23 13:20:00 UTC" "43988-01-28 13:20:00 UTC" "43986-08-25 17:20:00 UTC" 
[5] "43986-08-25 17:20:00 UTC" "43987-04-25 18:40:00 UTC" 

正如你所看到的,這一年是完全錯誤的。我嘗試使用其他格式,如「1970-01-01」,但結果是一樣的。 我知道綜合類數據取2013年十二月

回答

3

你要照顧,這是毫秒,因此:

x$timeInt <- x$timeInt/1000 

然後兩種方法之一:

as.POSIXct(x$timeInt, origin = '1970-01-01',tz='UTC') 

library(anytime) 

anytime(x$timeInt) 

#[1] "2013-12-26 15:26:40 CET" "2013-12-26 17:23:20 CET" "2013-12-26 23:13:20 CET" "2013-12-26 10:43:20 CET" "2013-12-26 10:43:20 CET" 
#[6] "2013-12-26 16:33:20 CET" 
+0

它不起作用。與as.POSIXct(x = x $ timeInt/1000,origin = '01 -01-1970',tz ='UTC')我得到「45-01-13 14:20:00 UTC」 – andriatz

+1

更改原點值。 ..它是不同於我的回答 –

+0

我隨時解決它(),謝謝你 – andriatz