1

大きなマトリックスを前処理する必要があります。私の例を理解しやすくするために、次のマトリックスを使用します。

生データ

ここに画像の説明を入力

col = 人、row = スキル

Rでは、私の行列は次のとおりです。

test <- matrix(c(18,12,15,0,13,0,14,0,12),ncol=3, nrow=3)

標的

私の場合、行ごとに処理する必要があります。したがって、3 つのステップがあります。行ごとに、次のことを行う必要があります。

  1. ij=ij の場合は 0 を入力 (したがって、すべての対角線はゼロに等しい)
  2. いずれかの ij=0 の場合は 0 を入れる
  3. それ以外の場合は、ij + ij を追加する必要があります

より明確にするために、3つのステップを示します。

ステップ 1 (行 1)

データは行1です

ここに画像の説明を入力

結果は次のとおりです。

ここに画像の説明を入力

ステップ 2 (row2)

データは行 2 です

ここに画像の説明を入力

結果は次のとおりです。

ここに画像の説明を入力

ステップ 3 (row3)

データは3行目

ここに画像の説明を入力

結果は次のとおりです。

ここに画像の説明を入力

最大行列を作成する

次に、最大一致は次のとおりです。

ここに画像の説明を入力

したがって、私の最終的な行列は次のようになります。

ここに画像の説明を入力

質問

Rでこれを達成する方法を教えてもらえますか? もちろん、私の行列がより多くの行と列を持っている場合、同じプロセスが機能するはずです...

どうもありがとう :)

4

1 に答える 1