我有一個由 8 個不同資料集組成的大型資料框,下面是三個不同時區的樣本。我匯入資料,然后將 8 個資料幀合并到一個 df 中。我希望能夠運行分析并 ggplot 整個資料集或其中的部分,以保持 Date_time 時區對每個區域都是正確的。
我最近發現 R 中的資料幀顯然不支持一列中的多個時區,因此使用 rbind 添加的所有以下 df 都采用第一個資料的時區(df$Date_time 從匯入的值更改),我嘗試了不同的方法來克服這個問題:
將資料框保存為串列,并創建 8 個串列的串列使本地時區在 listx$Date_time 中保持正確,但 ggplot 不允許從串列中繪圖,當我轉換回資料框時,時區都再次更改。
我創建了 df$tz 列以在檔案中包含每個時區,我嘗試了以下方法:創建固定 UTC 時間的解決方案,但這是一個字串 df$UTC,我不確定如何讓 R 和 ggplot 繪制資料具有正確的時區資訊。
df$Date 對不同的時區保持正確,因為時間被剝離,而 df$time_ser 在日期被剝離時保持正確。
我是否需要包含一個函式來計算我在運行時所做的每次分析中的實際本地時間 - 非常耗時,或者是否有其他方法可以做到這一點。
具有三個時區的示例資料框“df”:
> df
Date_time Depth Date time_ser UTC tz
1 2013-10-14 12:30:00 64.45 2013-10-14 12:30:00 2013-10-14 03:30:00 UTC Asia/Tokyo
2 2013-10-14 12:30:05 65.95 2013-10-14 12:30:05 2013-10-14 03:30:05 UTC Asia/Tokyo
3 2013-10-14 12:30:10 65.95 2013-10-14 12:30:10 2013-10-14 03:30:10 UTC Asia/Tokyo
4 2013-10-14 12:30:15 66.45 2013-10-14 12:30:15 2013-10-14 03:30:15 UTC Asia/Tokyo
5 2013-10-14 12:30:20 67.95 2013-10-14 12:30:20 2013-10-14 03:30:20 UTC Asia/Tokyo
6 2013-10-14 12:30:25 66.95 2013-10-14 12:30:25 2013-10-14 03:30:25 UTC Asia/Tokyo
31 2018-05-09 04:11:39 0.00 2018-05-08 14:11:39 2018-05-08 19:11:39 UTC America/Lima
32 2018-05-09 04:11:42 0.00 2018-05-08 14:11:42 2018-05-08 19:11:42 UTC America/Lima
33 2018-05-09 04:11:45 0.00 2018-05-08 14:11:45 2018-05-08 19:11:45 UTC America/Lima
34 2018-05-09 04:11:48 0.00 2018-05-08 14:11:48 2018-05-08 19:11:48 UTC America/Lima
35 2018-05-09 04:11:51 0.00 2018-05-08 14:11:51 2018-05-08 19:11:51 UTC America/Lima
36 2018-05-09 04:11:54 0.00 2018-05-08 14:11:54 2018-05-08 19:11:54 UTC America/Lima
43 2019-03-06 13:52:40 0.50 2019-03-06 17:52:40 2019-03-06 04:52:40 UTC Pacific/Auckland
44 2019-03-06 13:52:50 3.50 2019-03-06 17:52:50 2019-03-06 04:52:50 UTC Pacific/Auckland
45 2019-03-06 13:53:00 6.50 2019-03-06 17:53:00 2019-03-06 04:53:00 UTC Pacific/Auckland
46 2019-03-06 13:53:10 9.00 2019-03-06 17:53:10 2019-03-06 04:53:10 UTC Pacific/Auckland
47 2019-03-06 13:53:20 9.50 2019-03-06 17:53:20 2019-03-06 04:53:20 UTC Pacific/Auckland
48 2019-03-06 13:53:30 12.00 2019-03-06 17:53:30 2019-03-06 04:53:30 UTC Pacific/Auckland
uj5u.com熱心網友回復:
我希望能夠運行分析并 ggplot 整個資料集或其中的部分,以保持 Date_time 時區對每個區域都是正確的。
我將其解釋為“我想在當地時間繪制所有資料”,即我希望奧克蘭的上午 11 點等于利馬/東京的上午 11 點。
實作此目的的一種方法是使用該lubridate::force_tz函式,它可以在不調整“時間”組件的情況下更改 POSIXct 物件的時區。
> t = as.POSIXct('2013-10-14 12:30:00', tz = 'Asia/Tokyo')
> t
[1] "2013-10-14 12:30:00 JST"
> lubridate::force_tz(t, 'UTC')
[1] "2013-10-14 12:30:00 UTC"
如果您在合并之前對所有原始資料幀執行此操作,那么您可以假設所有資料都在同一個時區,東京上午 11 點與利馬上午 11 點相同。
當然,您可能需要記錄實時時區,以防您想將它們轉換回來!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/450736.html
上一篇:如何在R中調整刻面寬度?
