如何将带有时间的字符向量转换为 Time class 并在 r 中求和后获得总时间
How can I convert character vector with time into Time class and get a total amount of time after summing in r
我有一个矢量,它 class 是字符。首先,我想将它转换成时间 class,然后我想根据时间量将它分成两个向量(我想要一个超过四小时的子集和一个少于四小时的子集).然后我想获得子集中的总时间。我还在这个问题上附加了我的数据集的屏幕截图。
使用tidyverse
个包,你可以使用:
library(dplyr)
library(lubridate)
df <- tibble(
Time = paste(round(runif(18, 0, 10)),
sprintf("%02.0f", round(runif(18, 0, 59))),
sprintf("%02.0f", round(runif(18, 0, 59))),
sep = ":")
)
df %>%
mutate(
timevar = hms(Time),
fourhrs = timevar > hms("4:00:00")
) %>%
group_by(fourhrs) %>%
summarize(
sum = seconds_to_period(sum(period_to_seconds(timevar)))
)
# A tibble: 2 x 2
fourhrs sum
* <lgl> <Period>
1 FALSE 14H 11M 26S
2 TRUE 3d 17H 40M 51S
我有一个矢量,它 class 是字符。首先,我想将它转换成时间 class,然后我想根据时间量将它分成两个向量(我想要一个超过四小时的子集和一个少于四小时的子集).然后我想获得子集中的总时间。我还在这个问题上附加了我的数据集的屏幕截图。
使用tidyverse
个包,你可以使用:
library(dplyr)
library(lubridate)
df <- tibble(
Time = paste(round(runif(18, 0, 10)),
sprintf("%02.0f", round(runif(18, 0, 59))),
sprintf("%02.0f", round(runif(18, 0, 59))),
sep = ":")
)
df %>%
mutate(
timevar = hms(Time),
fourhrs = timevar > hms("4:00:00")
) %>%
group_by(fourhrs) %>%
summarize(
sum = seconds_to_period(sum(period_to_seconds(timevar)))
)
# A tibble: 2 x 2
fourhrs sum
* <lgl> <Period>
1 FALSE 14H 11M 26S
2 TRUE 3d 17H 40M 51S