1
as.numeric`私はas.numeric
上/dseconds()
を好むべきでない理由はありますか?後者は少し速いと思われる。両方とも同じ結果を出します。 lubridate `` period`
> as.numeric(lubridate::ymd_hms("2015-12-31 23:59:59 UTC") - lubridate::ymd_hms("2015-01-01 00:00:00 UTC"), units = "secs")
[1] 31535999
> interval(lubridate::ymd_hms("2015-01-01 00:00:00 UTC"), lubridate::ymd_hms("2015-12-31 23:59:59 UTC"))/dseconds(1)
[1] 31535999
とマイクロベンチマークテスト:
summary(microbenchmark::microbenchmark(
as.numeric(lubridate::ymd_hms("2016-12-31 23:59:59 UTC") - lubridate::ymd_hms("2016-01-01 00:00:00 UTC"), units = "secs"),
interval(lubridate::ymd_hms("2016-01-01 00:00:00 UTC"), lubridate::ymd_hms("2016-12-31 23:59:59 UTC"))/dseconds(1),
times = 100L, unit = "ms"))
が
min lq mean median uq max neval
as.numeric 3.095075 3.161979 3.320435 3.225082 3.293127 5.634390 100
/dseconds(1) 3.940120 4.067465 4.209389 4.163069 4.259054 6.072688 100
私はそこに推測を与えることは、関係は大きな違いは基本的にありません余分な機能interval/dseconds()
実際、あなたのケースでは、あなたは 'as.numeric'にチェックを入れることができると思います。 'interval'あなたが –
@Eric Lecoutre(例えば四半期)以下の標準的な差異を計算する必要がある場合には本当にいいです:' difftime'ドキュメントから 'as.numeric'は'「秒」、「分」、「時間を扱うことができます"、"日 "、"週 "です。 '期間 'は' dweeks、ddays、dminutes、dseconds'です。だから全く同じですか?それは、as.numericにはさらに多くのものがあるようですね? – Christoph