2

R で grepl() を使用して、パターンを文字列に一致させています。

複数の文字列を共通の文字列に一致させ、それらがすべて一致する場合は 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 に存在するため、TRUE を返す必要があります。

ありがとう!

4

1 に答える 1

5

を使用して単語strsplitに分割し、 を使用してそのような単語ごとにa を実行します。結果は論理ベクトルになり、すべて TRUE の場合は TRUE を返します。bsapplygrepl

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

与える:

[1] TRUE

注:aスペースを除いてとが同じ かどうかを判断するだけの場合bは、両方からスペースを削除して、残っているものを比較します。

gsub(" ", "", a) == gsub(" ", "", b)
于 2015-01-05T19:13:24.533 に答える