我想替换某些术语而不更改其他字词。
在这里,我想更改spindet而不更改其他单词,例如species
names <- c ('sp', 'sprucei', 'sp', 'species')
我已经尝试过gsub,但是当我运行它时,输出不是我想要的
gsub (' sp', ' indet', names)
输出:
[1] "indet" "indetrucei" "indet" "indetecies"
并不是:
[1] "indet" "sptrucei" "indet" "sptecies"
有什么建议吗?
干杯!

最佳答案

尝试

names <- c ('sp', 'sprucei', 'sp', 'species')
gsub('^sp$', 'indet', names)
# [1] "indet"   "sprucei" "indet"   "species"
^要求匹配从字符串的开头开始,而$要求匹配从字符串的结尾开始。

如果在sp之前/之后还有其他单词,则可以使用\b匹配单词边界
names <- c ('sp', 'sprucei', 'apple sp banana', 'species')
gsub('\\bsp\\b', 'indet', names)
# [1] "indet"       "sprucei"       "apple indet banana"     "species"

关于r - 在不更改其他单词的情况下替换R中的文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26044693/

10-12 19:55