R语言:如何将字符型患者等待时长h:m:s转为数值型秒数?
将h:m:s格式的等待时长转换为秒数的解决方案
错误原因
你之前的代码存在语法错误,chron函数的参数传递写法有误,正确的参数名是times;且直接调用chron得到的是时间对象,并非秒数,需要进一步转换。
方法一:修正chron包的用法
library(chron) # 解析字符型时间为chron时间对象 wait_time_obj <- chron(times = df$Wait.Time) # 将时间对象转换为秒数:chron以一天的比例存储时间,乘以86400(一天的总秒数)得到结果 df$Wait.Time <- as.numeric(wait_time_obj) * 86400
方法二:Base R原生方法(无需额外包)
# 拆分时间字符串为小时、分钟、秒三部分 time_components <- strsplit(df$Wait.Time, ":") # 遍历计算每一行的总秒数 df$Wait.Time <- sapply(time_components, function(parts) { as.numeric(parts[1]) * 3600 + as.numeric(parts[2]) * 60 + as.numeric(parts[3]) })
方法三:使用lubridate包(简洁直观)
library(lubridate) # hms函数解析时间字符串为时间间隔对象,转成数值直接得到秒数 df$Wait.Time <- as.numeric(hms(df$Wait.Time))
内容的提问来源于stack exchange,提问作者Emma541
相关产品推荐
相关产品推荐

