将时间从文本转换为数字 R

Converting time from text to numbers R

我有一份问卷,我想估计受访者提交的时间。我收到以下 responsetime 变量格式的数据:

mydata <- tibble(
id = c(1:10),
responsetime = c("24 minutes 4 seconds", "1 hour 2 minutes 55 seconds", "15 minutes 5 seconds", 
                 "2 hours 45 minutes 4 seconds", "55 minutes 23 seconds", "5 minutes 55 seconds", 
                 "10 minutes 34 seconds", "27 minutes 11 seconds", "1 hour 6 minutes 57 seconds", 
                  "45 minutes 45 seconds")
)

我想估计响应时间变量的平均时间,但无法将文本转换为整数。

您可以转换为 lubridate::period 对象

library(lubridate)
period(mydata$responsetime)

 #[1] "24M 4S"    "1H 2M 55S" "15M 5S"    "2H 45M 4S" "55M 23S"   "5M 55S"   
 #[7] "10M 34S"   "27M 11S"   "1H 6M 57S" "45M 45S" 

要获得以分钟为单位的平均响应时间,您可以这样做 -

mean(period_to_seconds(period(mydata$responsetime)))/60
#[1] 47.88833