正規表現を使用して単語のさまざまな組み合わせの集計値を計算するデータ セットを作成しています。各行には一意の正規表現値があり、これを別のデータセットと照合して、出現回数を調べたいと考えています。
最初のデータセット (df1) は次のようになります。
word1 word2 pattern
air 10 (^|\\s)air(\\s.*)?\\s10($|\\s)
airport 20 (^|\\s)airport(\\s.*)?\\s20($|\\s)
car 30 (^|\\s)car(\\s.*)?\\s30($|\\s)
これと一致させたい他のデータセット(df2)は次のようになります
sl_no query
1 air 10
2 airport 20
3 airport 20
3 airport 20
3 car 30
最終的な出力は、word1 word2 total_occ air 10 1 airport 20 3 car 30 1 のようになります。
Rでapplyを使用してこれを行うことができます
process <-
function(x)
{
length(grep(x[["pattern"]], df2$query))
}
df1$total_occ=apply(df1,1,process)
私のデータセットはかなり大きいので、時間がかかります。
「parallel」パッケージの「mclapply」機能を使用して、マルチコアでそのようなことを実行できることがわかりました。そのために、最初にlapplyを実行しようとしています。それは私にエラーを与えています
lapply(df,process)
x[, "pattern"] のエラー: 次元数が正しくありません
lapply を正しく実行するには、どのような変更を加える必要があるか教えてください。