【发布时间】:2015-07-25 10:52:21
【问题描述】:
目的是解析正则表达式并替换匹配的模式。
考虑这个例子:
data <- c("cat 6kg","cat g250", "cat dog","cat 10 kg")
我必须找到所有出现的cat 和一个数字[0-9]。为此:
found <- data[grepl("(^cat.[a-z][0-9])|(^cat.[0-9])",data)]
found
[1] "cat 6kg" "cat g250" "cat 10 kg"
下一步是将found 的每个元素替换为字符串cat。根据堆栈问题 20219311,我尝试了包 (gsubfn) 中的 gsub、sub 和 gsubfn():
gsubfn("((^cat.[a-z][0-9])|(^cat.[0-9]))", "cat",data)
[1] "catkg" "cat50" "cat dog" "cat0 kg"
这不是预期的结果:
[#] "cat" "cat" "cat dog" "cat"
我想我错过了一点。我会很感激我能得到的任何帮助。谢谢。
【问题讨论】: