非常に単純な質問で、SO で質問しなければならなかったことを後悔しています。私が思っていたよりも優れた解決策を世の中のクリエイティブな人が見つけてくれることを願っています。
「タイプ」の値が同じであるマトリックスの隣接する値の違いを見つけたいです。以下の例では、値が 2,6,1 のベクトルが必要です。
mat
value type
[1,] 5 A
[2,] 7 A
[3,] 1 B
[4,] 2 C
[5,] 8 C
[6,] 9 C
私は2つの方法で実装しようとしましたが、どちらも非常に遅いです:
アプローチ 1: の場合
type(row 1) = type(row 2)
、 を見つけてvalue(row 2) - value(row 1)
、1 ずつ増やします。の場合type(row 1) != type(row 2)
、2 ずつ増加します。アプローチ 2: それぞれの違いをループして、
type
すべての違いを見つけます。
約 500,000 の異なる「タイプ」と 500 万の異なる行があります。誰かがより効率的な方法を考えることができますか? 私は言語 R でプログラミングしています。R 言語には、違いを見つける関数が既にあります (?diff を参照)。