結合する必要がある情報を含む2つのデータセットがあります。私が持っている唯一の一般的なフィールドは、完全に一致しない文字列と、大幅に異なる数値フィールドです問題を説明する唯一の方法は、データを表示することです。BをAにマージしようとしています。Bには3つのフィールドがあり、Aには4つのフィールドがあります。会社名(ファイルAのみ)、ファンド名、資産クラス、資産。これまでのところ、単語または文字列の一部を置き換えて完全に一致するものを作成し、次を使用してファンド名を一致させることに焦点を当ててきました。by="Fund.Name")ただし、これにより約30%のマッチングしか得られません。残りは手でやらなければなりません。Assetsは、どちらも常に正しいとは限らない数値フィールドであり、ファンドの資産が少ない場合は大きく変化する可能性があります。資産クラスは、両方のファイルで「一般に」同じ文字列フィールドですが、矛盾があります。ファイルBのさまざまな一連の資金が合併症に追加されます。Value-Dこれらのケースでは、seriedでないものを選択するか、「A」、「-A」、または「Advisor」と呼ばれるものを一致として選択する必要があります。最良のアプローチは何ですか?この運動は私が毎月やらなければならないことであり、それらを手動で一致させることは非常に時間がかかります。コードの例はインストルメンタルです。IDEAS機能すると思われる1つの方法は、文字列内の各単語の最初の大文字に基づいて文字列を正規化することです。Rを使用してそれを実現する方法を見つけることができませんでした。私が検討したもう1つの方法は、資産、ファンド名、資産クラス、会社の組み合わせに基づいて一致のインデックスを作成することでした。繰り返しますが、Rでこれを行う方法はわかりません。1不適切な一致は分析全体を無効にするため、近似文字列一致はお勧めできません。各ソースからの名前が毎回同じであれば、インデックスを作成することも私にとって最良の選択肢のようです。Inc.'),qty=c(9,99))開始点としてpmatchなどを使用し、手動で検証するなどして、各ソースの名前のインデックスを一度作成します。2dgrtwo/fuzzyjoinパッケージを使用することを強くお勧めします。31つの簡単な提案:マージを使用する前に、異なるフィールドでいくつかのマッチングを個別に実行してください。以下に簡単な例を示します。238マッチを作成したら、代わりにそれらを使用して簡単にマージできます。4私もカナダの地元です。ファンド名を認識します。各データプロバイダーが個々のファンド名に独自のフォームを選択するため、これは難しいものです。ファンドまたはクラスのいずれかで終わるすべてのような別の構造を使用するものもあれば、至る所にあります。それぞれが独自の短い形式を選択しているようで、これらは定期的に変更されます。あなたのような非常に多くの人が定期的にこれを手作業でやっているのです。コンサルティング会社の中には、さまざまなソースをリンクするためにインデックスをリストしているものがありますが、そのルートを探索したかどうかはわかりませんか?シェーンとマレックが指摘したように、これは単なる結合以上のマッチングタスクです。多くの企業がこれに苦労しています。