r - 如何从 R 中的日期时间获取一年中的小时?
问题描述
我很惊讶这个lubridate
包没有这个功能。我正在寻找的是这样的东西yday(x)
,它给出了一年中的某一天,但我希望yhour(x)
它会返回, 1
for等等,一直到非闰年的 8760 。2020-01-01 01:00:00
2
2020-01-01 02:00:00
有任何想法吗?
解决方案
您可以编写自己的函数来计算它:
library(lubridate)
yhour <- function(time) {
(yday(time) - 1) * 24 + hour(time)
}
yhour(as.POSIXct('2020-01-01 08:00:00'))
#[1] 8
可以用基数 R 写成:
yhour <- function(time) {
(as.integer(format(time, '%j')) - 1) * 24 + as.integer(format(time, '%H'))
}
这里的逻辑是获取一年中的哪一天,从中减去 1 天乘以 24,然后加上今天的小时。
推荐阅读
- java - 动画时更新 HBox 的孩子会导致 IllegalStateException
- java - Java 8 并行下载,如果失败则重试
- javascript - 在 React Context API 和 Redirect 中保存 API 响应
- visual-studio-code - VsCode 如何使用输出与我的代码进行交互
- python-3.x - 如何使用随机生成的数字创建文件名?
- javascript - 使用输入的金额
- sitemap - 为什么站点地图生成器没有在博客部分生成超过 2 个分页页面内容的链接
- html - Angular中的动态colspan
- r - 如何根据出现的字符数删除行?
- javascript - 我有一个带有三个输入框的表单,我想用 javascript 实时计算数学