如何将R数据框中MM:SS格式字符串转换为hms::as_hms时间格式
报错原因
hms::as_hms() 默认要求输入的字符时间为完整的HH:MM:SS格式,你的tm列仅包含两段时间数值,缺少默认格式要求的某一段,无法直接匹配转换规则,因此抛出有损转换的报错。
正确转换方法
你可以根据自己时间串的实际含义选择对应方案:
- 如果你的
tm是MM:SS(分:秒)格式,补全小时位后转换:
library(dplyr) library(hms) df %>% mutate(tm = hms::as_hms(paste0("00:", tm)))
- 如果你的
tm是HH:MM(时:分)格式(和你给出的目标输出值对应),补全秒位后转换:
library(dplyr) library(hms) df %>% mutate(tm = hms::as_hms(paste0(tm, ":00")))
- 也可以搭配lubridate包的时间解析函数直接处理,无需手动补位:
library(dplyr) library(hms) library(lubridate) # 解析为分:秒 df %>% mutate(tm = hms::as_hms(ms(tm))) # 解析为时:分 df %>% mutate(tm = hms::as_hms(hm(tm)))
内容的提问来源于stack exchange,提问作者littleworth
相关产品推荐
相关产品推荐

