r - 如何在R中添加分钟到时间

标签 r time lubridate

我有一个包含时间(例如:10.24)和分钟(例如:31)列的数据框。

我想添加这两列。结果列将为 10.24+31(min)=10.55。我尝试过 但它给出的时间是错误的。

dput(stack_data)
structure(list(time = c("10:24", "10:40"), timeInMin = c(31L, 
23L)), row.names = c(19L, 23L), class = "data.frame")

我尝试过这样的:

stack_data$time <- (hm(stack_data$time))
stack_data$timeInMin <- hms((stack_data$time) + (stack_data$timeInMin))

输出:

time         timeInMin
10H 24M 0S    10:24:31
10H 40M 0S    10:40:23

我得到了错误的答案。你能建议我该怎么做吗?谢谢。

最佳答案

我们可以使用data.table中的as.ITime

library(data.table)
stack_data$time <- as.ITime(paste0(stack_data$time, ":00"))
stack_data$timeInMin <- stack_data$time +
                    as.ITime(paste0("00:", stack_data$timeInMin, ":00"))
stack_data$timeInMin
#[1] "10:55:00" "11:03:00"

或者使用hm

library(lubridate)
hm(stack_data$time)  + minutes(stack_data$timeInMin)
#[1] "10H 55M 0S" "10H 63M 0S"

关于r - 如何在R中添加分钟到时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60354977/

相关文章:

php - 如何在 PHP 中减去时间?

java - 本地日期不一致

r - 如何在 R 中使用 lubridate 将周和年列转换为日期列

r - 为什么在使用observeEvent 和此函数时收到错误消息,该函数在未包装在观察者中时工作正常?

r - 具有右闭区间的 findInterval()

python - 相当于 knitr + RMarkdown 中的 Python 等的\Sexpr{}?

r - 变异日期为所有小于时间戳的时间创建列

r - 在数字序列中查找 "valleys"

angular - 当组件属性取决于当前日期时间时如何管理 Angular2 "expression has changed after it was checked"异常

r - 将日期时间转换为格式化的时间字符串