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 日然后手动添加天数来解决这个问题 "missing",但我想知道函数是否有问题...?我真的不知道我做错了什么,因为我刚刚更改了日期...
从 2016-03-27
到 2016-03-28
多一天的原因是 0.96
是由于夏令时开始:
0.96 = 23 hours / 24 hours
阅读 this R Nabble blog 详细讨论了这个问题。
没有问题,当你用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
我对函数"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 日然后手动添加天数来解决这个问题 "missing",但我想知道函数是否有问题...?我真的不知道我做错了什么,因为我刚刚更改了日期...
从 2016-03-27
到 2016-03-28
多一天的原因是 0.96
是由于夏令时开始:
0.96 = 23 hours / 24 hours
阅读 this R Nabble blog 详细讨论了这个问题。
没有问题,当你用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