我在 R 中使用包中的difftime函式base,根據我的資料,我發現了這個函式的幾個奇怪的回傳值:
> difftime("2014-10-29", "2014-10-21", units = "days")
Time difference of 8.041667 days
> difftime("2020-4-04", "2020-3-28", units = "days")
Time difference of 6.958333 days
知道為什么這些值不是整數嗎?謝謝!
我在檔案中看到的所有相關內容是:“請注意,單位 = “天”表示 24 小時,因此不考慮夏令時。“日期”類物件的差異計算方式就像在UTC 時區。”
uj5u.com熱心網友回復:
我認為你應該用它as.Date來包裝你的日期字串,例如,
> difftime(as.Date("2014-10-29"), as.Date("2014-10-21"), units = "days")
Time difference of 8 days
> difftime(as.Date("2020-4-04"), as.Date("2020-3-28"), units = "days")
Time difference of 7 days
您可以觀察有無差異as.Date
> (a1 <- as.POSIXct("2014-10-29"))
[1] "2014-10-29 CET"
> (a2 <- as.POSIXct("2014-10-21"))
[1] "2014-10-21 CEST"
> (b1 <- as.POSIXct(as.Date("2014-10-29")))
[1] "2014-10-29 01:00:00 CET"
> (b2 <- as.POSIXct(as.Date("2014-10-21")))
[1] "2014-10-21 02:00:00 CEST"
> c(a1, b1)
[1] "2014-10-29 00:00:00 CET" "2014-10-29 01:00:00 CET"
> c(a2, b2)
[1] "2014-10-21 00:00:00 CEST" "2014-10-21 02:00:00 CEST"
uj5u.com熱心網友回復:
difftime 函式使用 as.POSIXct() 而不是 as.Date() 將字串轉換為日期,這包括系統特定的時區(如果沒有另外提供)。這些日期對包含許多時區中夏令時的變化,這可能是時間間隔不是整數的原因。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/524520.html
標籤:r日期差异时间
