【发布时间】:2017-09-12 20:54:01
【问题描述】:
我有一个包含时间的数据框,格式如下:
df<-data.frame(time=c("1655","1055","1123","1505"))
# time
# 1 1655
# 2 1055
# 3 1123
# 4 925
我想把它改成标准格式,即带冒号的 16:55:00,但是在 lubridate 包中使用函数 hms 不起作用。
我正在考虑将 time 列分成 2 列,这样我就可以:
# time1 time2
# 1 16 55
# 2 10 55
# 3 11 23
# 4 9 25
然后使用:作为分隔符将它们组合回来:
# time
# 1 16:55
# 2 10:55
# 3 11:23
# 4 09:25
但是,我不确定该怎么做(尤其是处理正则表达式)。我试过了:
library(tidyr)
df %>%
separate(time,c("time1","time2"),sep="[[:digit:]$]{2}") %>%
unite(time,time1,time,sep=":")
当然,这是行不通的。
【问题讨论】: