gpt4 book ai didi

r - 如何在没有特定日期且不超过 24 小时的情况下使用 lubridate 添加小时数?

转载 作者:行者123 更新时间:2023-12-02 02:44:04 25 4
gpt4 key购买 nike

我正在尝试使用 lubridate 作为优化员工日程安排的基础。如何在不必在日历中使用特定日期的情况下为轮类和工作时间编写数据框? (是的,我才刚刚开始,已经遇到了简单的问题,我是 R 的新手……)

我手动写了一些信息,但我需要能够以 24 小时为基础计算,所以我尝试计算工作时间只是为了确定。

shift <- c("week", "evening", "weeknight", "weekend", "weekendnight")
start <- c(hms::as.hms(27000), hms::as.hms(43200), hms::as.hms(77400), hms::as.hms(28800), hms::as.hms(72000))
end <- c(hms::as.hms(64800), hms::as.hms(79200), hms::as.hms(29700), hms::as.hms(72000), hms::as.hms(28800))
hours <- c(hms::as.hms(37800), hms::as.hms(36000), hms::as.hms(38700), hms::as.hms(43200), hms::as.hms(43200))


shiftsDF <- data.frame(shift, start, end, hours) %>%
mutate(computedhours = hms::as.hms(end-start))

我希望“computedhours”与我手动输入的“小时”相同,直到我明白它只是秒的总和,与日期无关。如何让 R studio 明白我说的是几天而不用使用确切的日期?

最佳答案

使用 dplyr::if_else 我们可以做到

library(lubridate)
library(dplyr)
data.frame(shift, start, end, hours) %>%
mutate(computedhours = if_else(end < start,
hms::as.hms(dmy_hms(paste('02/01/2019',end)) - dmy_hms(paste('01/01/2019',start))),
hms::as.hms(end-start)))

关于r - 如何在没有特定日期且不超过 24 小时的情况下使用 lubridate 添加小时数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57047684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com