簡體   English   中英

R“difftime”表現出奇怪的行為

[英]R “difftime” exhibits strange behavior

我對“difftime”功能感到有點困惑。 當我計算截至2016年3月27日的時差時,一切都還可以。 但是,一旦我嘗試2016年3月28日,29日,30日或31日,似乎就出現了問題:

> difftime("2016-03-27","1979-01-01", units="days")
Time difference of 13600 days
> difftime("2016-03-28","1979-01-01", units="days")
Time difference of 13600.96 days
> difftime("2016-03-31","1979-01-01", units="days")
Time difference of 13603.96 days

我可以通過將日期設置為2016年3月27日然后手動添加“丟失”的天數來解決這個問題,但我想知道函數是否有問題...? 因為我剛剛更改了天數,所以我真的沒有看到我能做錯的事情......

2016-03-272016-03-28的額外一天是0.96的原因是由於夏令時開始:

0.96 = 23 hours / 24 hours

閱讀此R Nabble博客 ,詳細討論了這個問題。

使用as.Date轉換它時沒有問題:

difftime(as.Date("2016-03-28"), as.Date("1979-01-01"), units="days")

# Time difference of 13601 days

lubridate也沒有問題:

library(lubridate)   
difftime(ymd("2016-03-28"), ymd("1979-01-01"), units="days")

# Time difference of 13601 days

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM