首页 > 解决方案 > R中的字符串-在字符串和数字之间插入所需/任意数字

问题描述

我有一个看起来像这样的字符向量:

questions <- c("question1"  "question10" "question11" "question12" 
"question13" "question14" "question15" "question16" "question17", 
"question18" "question2"  "question3"  "question4"  "question5"  "question6"  
"question7"  "question8"  "question9")

我想在“问题”和单个数字之间插入一个 0,以便字符向量看起来像:

 questions <- c("question01"  "question10" "question11" "question12" 
 "question13" "question14" "question15" "question16" "question17", 
 "question18" "question02"  "question03"  "question04"  "question05"  
 "question06"  "question07"  "question08"  "question09")

请注意,与两位数关联的字符串“问题”"question10"不受影响"question18

我是模式匹配的新手。我尝试了以下代码:

gsub(pattern = "(\\D*)(\\d{1})", replacement = "0\\1", x = mydf6$Question, perl = TRUE)

但是,它没有给出预期的结果。

任何帮助,将不胜感激。

标签: rregexgsub

解决方案


尝试

gsub("(?<=[a-z])(\\d)$", "0\\1", mydf6$Question, perl = T)

这 subs 在零,但前提是字符串以单个数字结尾,前面有一个小写字母。


推荐阅读