2016-12-16 9 views
-2

lubridate Periodオブジェクトを最も近い分に丸めようとしています。LubridateはPeriodオブジェクトを丸めることができません

library(lubridate) 
round_date(as.period("2d 20H 22M 9.57S")) 

だからround_dateがPOSIXctに私の期間を変換するが、なぜですか?

Error in as.POSIXct.numeric(x) : 'origin' must be supplied 

を与えますかそれを別のフォーマットに変換することなく、周期を丸で丸めることは可能ですか?私は単純なものが欠けているようです。

ありがとうございます!

+0

as.period()は、文字列 "2d 20H 22M 9S"が上記以外の区間、差分または数値オブジェクトを必要とします。どのように "2d 20H 22M 9S"を生成していますか? – MorganBall

+0

私は、最も簡単な再現可能な例を試していました。 – blongworth

+0

'class(as.period(" 2d 20H 22M 9.57S "))'はピリオドで、私のコードで作業しているPeriodオブジェクトと同じエラーを生成します。私の例を試しましたか? – blongworth

答えて

1

?round_dateによれば、この関数は、第1引数としての日付 - 時間オブジェクトのベクトルを期待しています。したがって、それは期間オブジェクトで使用するためのものではありません。

期間オブジェクトを一般に丸めることができない理由は、?as.periodにあります。期間内の各時間単位の正確な長さは、発生するタイミングによって異なります。 [...]例えば、うるう秒が発生すると、1分は60秒より長くなります。

lubridateは非常に慎重にDurationInterval、およびPeriodクラスを区別します。

+0

これは間違いなくドキュメントにあります。私は、たとえ不完全であっても、期間を丸める必要があると思います。 「どれくらいの時間がかかりますか?」という質問に答えることができるはずです。プログラム的に – blongworth

関連する問題