lubridate中的簡單問題 - 我想將hms對象轉換爲自一天開始以來的適當秒數。在R中,使用lubridate將hms對象轉換爲秒
例如
library(lubridate)
hms("12:34:45")
那麼我想知道12小時,34分鐘,45秒究竟有多長,在秒
明顯的東西像
seconds(hms("12:34:45"))
只是返回
45s
這不是我想要的。我如何將這些hms值轉換爲秒?我想使用lubridate
lubridate中的簡單問題 - 我想將hms對象轉換爲自一天開始以來的適當秒數。在R中,使用lubridate將hms對象轉換爲秒
例如
library(lubridate)
hms("12:34:45")
那麼我想知道12小時,34分鐘,45秒究竟有多長,在秒
明顯的東西像
seconds(hms("12:34:45"))
只是返回
45s
這不是我想要的。我如何將這些hms值轉換爲秒?我想使用lubridate
使用哪個軟件包無關緊要 - 它將把日期/日期時間對象轉換爲自時代以來秒數的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
編輯:,能重返lubridate,這無疑是一個錯誤:
> 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>
R>lubridate::period_to_seconds(hms("01:00:00"))
給出預期3600秒爲數字計數從00:00:00 或在上面的情況下:
R>period_to_seconds(hms("12:34:45"))
'as.duration()'也許? – joran