私は比較したい文字列を持つデータフレームに2つの列を持っています。最初の文字列は文字列のベクトルで、2番目の文字列は各要素の文字列のミニベクトルを持つリストです。このようなデータフレームを持っている想像:文字列リストの各要素とRのベクトルの各文字列の一致を見つける( 'for'を避ける)
V L
"Anameone" "name" "asd"
"Bnametwo" "dfg"
"Cnamethree" "hey" "C" "hi"
言葉のいくつかの第二の要素であれば、私は、Lの最初の要素内の単語の一部がVの最初の要素に現れるかどうかを確認したいと思いますLの2番目の要素にLのようなものが現れます。出力されるように
for (i in c(1:3)){ df$matches[i] <- any(df$L[[i]],grepl, df$V[i],ignore.case = T)) }
:
私は、このようなループを望んで行うことができ
> df$matches
[1] "TRUE" "FALSE" "TRUE"
しかし、実際に私の周り100.000代わりに3の行を持って、それ本当に長くかかります。私はこれをもっと効率的にやっていく方法を考え出すことができませんでした。索引を使用しない私の他の試みはすべて、この例では3x3のマトリックスになります。なぜなら、「すべてをすべて」と比較するからです。
これはdf $ Lの最初の要素のみを使用しているため、 "name"はV要素のそれぞれに存在するため、すべてのTrueを返すようになっています。要素ごとに要素をVとLの両方をチェックする何かを書かなければならないでしょう。 –
はい、そうです。テスト用にそれを持ち、削除するのを忘れました。私は別の亀裂があります。 – Chris