首页 > 解决方案 > 是否有一个 R 函数可以将我的字符串日期变量和我的数字时间变量更改为单个数字小时变量?

问题描述

我希望将两个变量(日期和时间)组合成一个变量,该变量由一周内的 168 小时组成。例如,我的 day 变量为“Tuesday”,时间为“13:00”。有没有办法合并这些给我一个由一周中 168 小时的数值组成的变量?(例如,星期二 13:00 更改为 37)。

理论上很简单,但我无法弄清楚处理大量数据的最佳方法。我假设使用润滑?

或者创建一个新变量并手动添加这些数据会更容易吗?

标签: rdate

解决方案


我们可以做 amatch然后乘以24并加上剩余的小时数

library(lubridate)
day <- "Tuesday"
hour <- "13:00"
time <- lubridate::hms(paste0(hour, ":00"))
dayind <- match(day, 
       c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", 
        "Saturday", "Sunday"))
(dayind-1) * 24 + hour(time) + minute(time)/60
[1] 37

[1] 37

推荐阅读