假设这是我的数据框(znot,n喷嘴,zean)。我希望输出像突出显示z和n这样。如何在R中编写一个遍历每个单词并找到字符n和z的函数
我知道R中有一个称为或(|)的函数,但没有AND之类的函数。
答案 0 :(得分:0)
像这样吗?
pat <- c("n", "z")
x <- c("znot", "nozzle", "zean", "zebra", "nonsense")
dat <- data.frame(x)
search_letters <- function(x, pattern, ignore.case = FALSE, value = TRUE){
i <- apply(sapply(pattern, grepl, x, ignore.case = ignore.case), 1, all)
if(value) x[i] else i
}
search_letters(dat$x, pat)
#[1] znot nozzle zean
#Levels: nonsense nozzle zean zebra znot
search_letters(dat$x, pat, value = FALSE)
#[1] TRUE TRUE TRUE FALSE FALSE