lubridateの簡単な質問-hmsオブジェクトを1日の始まりから適切な秒数に変換したいと思います。
例えば
library(lubridate)
hms("12:34:45")
次に、12時間、34分、45秒の長さを秒単位で正確に知りたい
のような明白な何か
seconds(hms("12:34:45"))
戻るだけ
45s
それは私が望むものではありません。これらのhms値を秒に変換するにはどうすればよいですか?ルブリデートを使いたい
R>lubridate::period_to_seconds(hms("01:00:00"))
00:00:00からの数値カウントとして、または上記の場合、予想される3600秒を示します。
R>period_to_seconds(hms("12:34:45"))
どのパッケージを使用するかは関係ありません。日付/日時オブジェクトは、エポックからの秒数のPOSIXct表現に変換されます。したがって、ベースRで実行することもできます。したがって、ここISOdatetime()
では、今日を使用して、任意の日にデプロイします。
R> difftime(ISOdatetime(2012,7,2,12,34,45), ISOdatetime(2012,7,2,0,0,0))
Time difference of 12.5792 hours
したがって、秒が必要です。
R> difftime(ISOdatetime(2012,7,2,12,34,45), ISOdatetime(2012,7,2,0,0,0),
+ unit="secs")
Time difference of 45285 secs
そして、数字にキャストすることができます:
R> as.numeric(difftime(ISOdatetime(2012,7,2,12,34,45), +
ISOdatetime(2012,7,2,0,0,0), unit="secs"))
[1] 45285
編集: そして潤滑剤に戻ると、これは間違いなくバグです:
> hms("12:34:45") - hms("00:00:00")
[1] 12 hours, 34 minutes and 45 seconds
R> as.numeric(hms("12:34:45") - hms("00:00:00"))
[1] 45
R>