如何在R中提取difftime结果的数值部分(去除hours后缀)
解决方法
直接通过as.numeric()提取difftime对象的数值部分即可,这是最简洁高效的方式,修正后的代码如下:
library(dplyr) df %>% mutate(difference = as.numeric(difftime(DateTime_Start, DateTime_End, units = 'hours')))
运行后difference列就只会保留纯数值(比如0.000000、3.449754),不会带有hours后缀。
如果坚持要用字符处理的方式(不推荐,步骤繁琐且易出错),可以先将difftime对象转为字符,再用正则表达式剔除后缀:
df %>% mutate(difference = as.numeric(sub("\\s+hours$", "", as.character(difftime(DateTime_Start, DateTime_End, units = 'hours')))))
内容的提问来源于stack exchange,提问作者book1001
相关产品推荐
相关产品推荐

