【发布时间】:2015-05-26 11:24:07
【问题描述】:
在 R 中,我有以下向量,我正在尝试得到以下结果:
vec <- c("6-9 h", "9-13 h", "13-16 h", "16-18 h")
res <- c("06:00-09:00", "09:00-13:00", "13:00-16:00", "16:00-18:00")
我使用 gsub 函数的方法部分有效
gsub("(.*)-(.*) (.*)", "\\1:00-\\2:00", vec)
# result:
"6:00-9:00" "9:00-13:00" "13:00-16:00" "16:00-18:00"
现在我的问题是:有没有办法用正则表达式输入个位数的零?
【问题讨论】:
-
您可以使用
sprintf即。library(stringr); sapply(str_extract_all(vec, '\\d+'), function(x) {x1 <- as.numeric(x); sprintf('%02d:00-%02d:00', x1[1], x1[2])})