指定された単位で inintervalによって表される時間の長さを取得する最良の方法は何ですか? lubridate私が理解できるのは、次のような面倒なことだけです。
> ival
[1] 2011-01-01 03:00:46 -- 2011-10-21 18:33:44
> difftime(attr(ival, "start") + as.numeric(ival), attr(ival, "start"), 'days')
Time difference of 293.6479 days
(私はこれをhttps://github.com/hadley/lubridate/issues/105に機能リクエストとして追加しました。利用可能なより良い方法がないという仮定の下で-しかし、おそらく誰かがここで知っているでしょう。)
更新- どうやらdifftime関数はこれも処理しません。これが例です。
> (d1 <- as.POSIXct("2011-03-12 12:00:00", 'America/Chicago'))
[1] "2011-03-12 12:00:00 CST"
> (d2 <- d1 + days(1)) # Gives desired result
[1] "2011-03-13 12:00:00 CDT"
> (i2 <- d2 - d1)
[1] 2011-03-12 12:00:00 -- 2011-03-13 12:00:00
> difftime(attr(i2, "start") + as.numeric(i2), attr(i2, "start"), 'days')
Time difference of 23 hours
/.interval以下で言及するように、これを処理する 1 つの良い方法は、最初に入力を にキャストしない関数を実装することだと思いますperiod。