私はテキスト文字列を含むベクトルを持つデータフレームを持っています。私は、各文字列がいくつかのリストの1つに含まれているかどうかに基づいて、これらの文字列を値(0,1,2、...)に再コードし、データフレーム内の新しいベクトルに割り当てようとしていますR - 複数のリストの1つとの一致に基づいてベクトルに値を代入する
:
new_vector = (2, 1, 3, 3, 2)
:
vector = c("A", "B", "C", "D", "E")
list1 = c("B", "G", "P", "Z")
list2 = c("A", "E", "M", "Q")
list3 = everything not in list1 or list2
新しいベクトルは、ベクトル[I]はLIST1、またはリスト2、又はLIST3に含まれているかどうかに応じて "0"、 "1"、または "2" を割り当てるべきです
私は%in%のさまざまな順列を試しましたが、問題は "ベクトル"が非常に長く(数十万の要素)、そして私が照合しているリストの中にはかなり長いものもあります(10-30要素)。私は動作する声明を持っていますが、エクストリームが遅いです。モスを見ているとゆっくりと成長する。
このような畳み込みマッチングシナリオを最適にスピードアップするためのR "トリック"は何ですか?
OMG、それは信じられないほどうまく動作します!ありがとう、フランク - あなたは本当に私の隠しを救った! それは間違いなく私が個人的な図書館に入れている秘訣です。 – TPL