2つのリストに数字があり、1つのリストの値ともう1つのリストを一致させる必要があります。試合は番号の先頭に基づいて行われなければなりません。可能な限り最長一致のrow_idを返す必要があります。この例ではRの2つの整数の中で最も長いマッチを見つける
lookup value: 12345678
find_list:
a 1
b 12
c 123
d 124
e 125
f 1234
g 1235
我々はa,b,c,f
との一致を持っているでしょうし、Rはf
を返さなければなりません。 f
は最長であり、したがって最もマッチします。
私は今、RでstartsWith
関数を使用しています。その答えから、私は最も長い値を選択します。しかし、問題はリストが巨大であることです。 find_list
に1850万のルックアップ値と300,000の可能な値があり、しばらくするとRがクラッシュします。
これを行うにはスマートな方法がありますか?