2015-01-05 3 views
2

R에서 grepl()을 사용하여 패턴을 문자열과 일치시킵니다.R grepl - 문자열과 패턴 일치

나는 여러 문자열을 공통 문자열로 일치시켜야하며 모두 일치하면 TRUE를 반환해야합니다. 예를 들어

:

a <- 'DEARBORN TRUCK INCDBA' 
b <- 'DEARBORN TRUCK INC DBA' 

내가 변수에 변수 B의 모든 단어도 있는지 확인하고 싶습니다.

패턴 (공백)이 동일하지 않기 때문에 grepl (b, a)를 사용할 수 없습니다.

grepl('DEARBORN&TRUCK&INC&DBA', a) 

또는

grepl('DEARBORN+TRUCK+INC+DBA', a) 

하지만 어느 작업 : 그것은이 같은해야처럼

는 것 같습니다. 나는 b의 각 단어를 a와 비교할 필요가있다. 이 경우 모든 단어가 a에 있으므로 TRUE를 반환해야합니다.

감사합니다.

답변

5

을 사용하여 단어로 나눈 다음 sapply을 사용하여 각 단어에 grepl을 수행하십시오. 결과는 논리적 벡터하고 그 경우 모두 TRUE 후 TRUE를 반환합니다 :

all(sapply(strsplit(b, " ")[[1]], grepl, a)) 

주는 :

[1] TRUE 

참고 : 만 ab가 같은 경우 결정하기 위해 찾고 있다면 공백을 제외하고 양쪽에서 공백을 제거하고 남은 것을 비교하십시오.

gsub(" ", "", a) == gsub(" ", "", b)