特に、質問の対象となる両方のツールの作成者によるすばらしい回答があります。Mattの回答は、質問で報告されたケースを説明しています。これは、マージアルゴリズムではなく、バグによって引き起こされたものです。バグは翌日、7年以上前に修正されました。
私の答えでは、data.tableとpandasのマージ操作のいくつかの最新のタイミングを提供します。plyrとbase Rマージは含まれていないことに注意してください。
私が提示しているタイミングは、継続的に実行される再現可能なベンチマークであるdb-benchmarkプロジェクトからのものです。ツールを最新バージョンにアップグレードし、ベンチマークスクリプトを再実行します。他の多くのソフトウェアソリューションを実行します。Sparkに興味がある場合は、Daskや他のいくつかのリンクを確認してください。
現在のところ...(まだ実装されていません:データサイズが1つ増え、質問が5つ増えます)
LHSテーブルの2つの異なるデータサイズをテストします。
これらのデータサイズごとに、5つの異なるマージ質問を実行します。
  Q1:LHS内側はRHS-参加小   整数に
  Q2:LHS内側整数でRHS媒体に参加
  Q3:LHS 外側は整数でRHS媒体に参加
  Q4:LHS内側が上RHS媒体を結合因子(カテゴリ)
 
  Q5:LHSインナーRHS-に参加します    整数に   大きな
RHSテーブルには3つのサイズがあります
- smallはLHS / 1e6のサイズに変換されます
 
- 媒体はLHS / 1e3のサイズに変換されます
 
- bigはLHSのサイズに変換されます
 
すべてのケースで、LHSとRHSの間で一致する行の約90%があり、RHS結合列に重複はありません(デカルト積はありません)。
現在(2019年11月2日に実行)
2019年11月1日にリリースされたパンダ0.25.3 
data.table 0.12.7(92abb70)が2019年11月2日にリリースされました  
LHSの2つの異なるデータサイズについて、以下のタイミングは秒単位です。列にpd2dtは、パンダがdata.tableよりも遅い回数の比率を格納するフィールドが追加されています。
+-----------+--------------+----------+--------+
| question  |  data.table  |  pandas  |  pd2dt |
+-----------+--------------+----------+--------+
| q1        |        0.51  |    3.60  |      7 |
| q2        |        0.50  |    7.37  |     14 |
| q3        |        0.90  |    4.82  |      5 |
| q4        |        0.47  |    5.86  |     12 |
| q5        |        2.55  |   54.10  |     21 |
+-----------+--------------+----------+--------+
+-----------+--------------+----------+--------+
| question  |  data.table  |  pandas  |  pd2dt |
+-----------+--------------+----------+--------+
| q1        |        6.32  |    89.0  |     14 |
| q2        |        5.72  |   108.0  |     18 |
| q3        |       11.00  |    56.9  |      5 |
| q4        |        5.57  |    90.1  |     16 |
| q5        |       30.70  |   731.0  |     23 |
+-----------+--------------+----------+--------+
               
              
data.tableから継承するだけですが、内部data.frameではCコードに依存しています。