如何在R中添加分钟到时间
How to add minutes to time in R
我有一个包含时间(例如:10.24)和分钟(例如:31)列的数据框。
我想添加这两列。结果列为 10.24+31(min)=10.55。我试过 lubridate 但它给出了错误的时间。
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
我得到了一个错误的答案。你能建议我怎么做吗?谢谢
我们可以使用 as.ITime
从 data.table
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"
我有一个包含时间(例如:10.24)和分钟(例如:31)列的数据框。
我想添加这两列。结果列为 10.24+31(min)=10.55。我试过 lubridate 但它给出了错误的时间。
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
我得到了一个错误的答案。你能建议我怎么做吗?谢谢
我们可以使用 as.ITime
从 data.table
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"