如何从 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,然后加上今天的时间。
我很惊讶 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,然后加上今天的时间。