查找字符串是否包含r

时间:2016-04-20 03:22:24

标签: r string

我有以下数据框:

dat <- data.frame(Name = c("John", "Company A pty Ltd", ""), Surname = c("Smith", "", "Company B"), Company = c("Company D", "A Ltd", "Company B"))

我想检查公司列是否包含firstName或Surname中的任何单词。

我使用了以下代码:

dat$clinicOnly <- mapply(grepl, pattern=dat$firstName, dat$Company)

但它检查的是整个字符串是否存在。因此它适用于第一行,但是错过了第二行,并且最后一行是正确的,因为它检测到空白的firstName条目。

如何编写产生FALSE,TRUE,TRUE的函数?

1 个答案:

答案 0 :(得分:1)

如何使用intersect进行努力工作?:

v1 <- strsplit(do.call(paste, dat[1:2]), "\\s+")
v2 <- strsplit(as.character(dat$Company), "\\s+")

mapply(function(x,y) length(intersect(x,y)) > 1, v1, v2)
#[1] FALSE  TRUE  TRUE