R grepl - 将模式与字符串匹配
R grepl - Matching Pattern to String
我在 R 中使用 grepl() 将模式与字符串匹配。
我需要将多个字符串与一个公共字符串匹配,return如果它们都匹配则为 TRUE。
例如:
a <- 'DEARBORN TRUCK INCDBA'
b <- 'DEARBORN TRUCK INC DBA'
我想看看变量b中的所有单词是否也在变量a中。
我不能只使用 grepl(b, a) 因为模式(空格)不一样。
好像应该是这样的:
grepl('DEARBORN&TRUCK&INC&DBA', a)
或
grepl('DEARBORN+TRUCK+INC+DBA', a)
但都不起作用。我需要将 b 中的每个单词与 a 进行比较。在这种情况下,由于所有单词都存在于 a 中,因此它应该 return TRUE。
谢谢!
使用strsplit
将b
拆分为单词,然后使用sapply
对每个单词执行grepl
。结果将是一个逻辑向量,如果全部为 TRUE,则 return TRUE:
all(sapply(strsplit(b, " ")[[1]], grepl, a))
给予:
[1] TRUE
注意: 如果您只想确定 a
和 b
除了空格之外是否相同,则删除两者的空格并进行比较还剩什么:
gsub(" ", "", a) == gsub(" ", "", b)
我在 R 中使用 grepl() 将模式与字符串匹配。
我需要将多个字符串与一个公共字符串匹配,return如果它们都匹配则为 TRUE。
例如:
a <- 'DEARBORN TRUCK INCDBA'
b <- 'DEARBORN TRUCK INC DBA'
我想看看变量b中的所有单词是否也在变量a中。
我不能只使用 grepl(b, a) 因为模式(空格)不一样。
好像应该是这样的:
grepl('DEARBORN&TRUCK&INC&DBA', a)
或
grepl('DEARBORN+TRUCK+INC+DBA', a)
但都不起作用。我需要将 b 中的每个单词与 a 进行比较。在这种情况下,由于所有单词都存在于 a 中,因此它应该 return TRUE。
谢谢!
使用strsplit
将b
拆分为单词,然后使用sapply
对每个单词执行grepl
。结果将是一个逻辑向量,如果全部为 TRUE,则 return TRUE:
all(sapply(strsplit(b, " ")[[1]], grepl, a))
给予:
[1] TRUE
注意: 如果您只想确定 a
和 b
除了空格之外是否相同,则删除两者的空格并进行比较还剩什么:
gsub(" ", "", a) == gsub(" ", "", b)