R中的字符串-在字符串和数字之间插入所需/任意数字
我有一个如下所示的字符向量:R中的字符串-在字符串和数字之间插入所需/任意数字,r,regex,gsub,R,Regex,Gsub,我有一个如下所示的字符向量: questions <- c("question1" "question10" "question11" "question12" "question13" "question14" "question15" "question16" "question17", "question18" "question2" "question3" "question4" "question5" "question6" "question7" "ques
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")
请注意,与两位数(即问题10或问题18)关联的字符串问题不受影响
我不熟悉模式匹配。我尝试了以下代码:
gsubpattern=\\D*\\D{1},replacement=0\\1,x=mydf6$Question,perl=TRUE
然而,这并没有达到预期的效果
任何帮助都将不胜感激 试试看
gsub("(?<=[a-z])(\\d)$", "0\\1", mydf6$Question, perl = T)
此子字符串为零,但仅当字符串以一个数字结尾,前面有一个小写字母时才使用。这很接近,但从问题中删除了n,并用0替换。所以,问题1变成了问题01?我认为它与perl=TRUE一起工作,即gsub?对不起,忘了添加它,您确实需要perl=TRUE。您能解释一下正则表达式的术语吗?当然,那么?您可以使用sub\\D\\D$,\\10\\2,mydf6$问题。如果字符串末尾的数字超过2位,这种类似于POST的方法将不起作用。