如何从 R 中的日期时间获取一年中的小时数?

How to get hour of the year from a datetime in R?

我很惊讶 lubridate 包没有这个功能。 我正在寻找的是 yday(x) 之类的东西,它给出了一年中的某一天,但我想要 yhour(x) 会 return 1 for 2020-01-01 01:00:00, 2 2020-01-01 02:00:00 以此类推一直到非闰年的 8760。

有什么想法吗?

您可以编写自己的函数来计算它:

library(lubridate)
yhour <- function(time) {
  (yday(time) - 1) * 24 + hour(time)
}
yhour(as.POSIXct('2020-01-01 08:00:00'))
#[1] 8

可以用 base R 写成:

yhour <- function(time) {
  (as.integer(format(time, '%j')) - 1) * 24 + as.integer(format(time, '%H'))
}

这里的逻辑是获取一年中的第几天,从中减去 1 天乘以 24,然后加上今天的时间。