我想在下面的字符向量中找到"氮"并且想要仅返回包含"氮"的条目,而不是其余的(例如固氮):
varnames=c("nitrogen", "dissolved organic nitrogen", "nitrogen fixation", "total dissolved nitrogen", "total nitrogen")
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情:
grepl(pattern= "![[:space:]]nitrogen![[:space:]]", varnames)
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我希望有人可以帮我完成这项任务.
the*_*ail 14
虽然Dason的答案更容易,但您可以使用grep通过以下方式进行完全匹配:
varnames=c("nitrogen", "dissolved organic nitrogen", "nitrogen fixation", "total dissolved nitrogen", "total nitrogen")
grep("^nitrogen$",varnames,value=TRUE)
[1] "nitrogen"
grep("^nitrogen$",varnames)
[1] 1
Run Code Online (Sandbox Code Playgroud)
Das*_*son 13
要获得完全等于"氮"的指数,您可以使用
which(varnames == "nitrogen")
Run Code Online (Sandbox Code Playgroud)
根据你想要做的事情,你可能甚至不需要'which'作为varnames == "nitrogen"逻辑向量为TRUE/FALSE.如果你只是想做一些事情,比如用"氧气"代替所有"氮"的出现,这就足够了
varnames[varnames == "nitrogen"] <- "oxygen"
Run Code Online (Sandbox Code Playgroud)