私は定義済みの行列M = matrix(0,5,4)
を持っています。私は値0から適切な値にデータフレーム(行列の行要素)とdf$colB = y
(行列の列要素)のデータフレームdf
オブジェクトの値を更新したいと思います。私はそれぞれの一意のcolAとcolBの値で行の名前とcol名を設定しました。 ColAおよびColBの値は、規則的な配列値を取る代わりに離散的な整数です。適用を使用して行列を更新
M =マトリックス(0,5,4) rownames(M)= Cの(135,138,145,146,151) COLNAMES(M)= Cの(192204206207)
192 204 206 207
135 0 0 0 0
138 0 0 0 0
145 0 0 0 0
146 0 0 0 0
151 0 0 0 0
df-> ColA ColB ColC
135 192 1
135 204 1
135 206 -1
138 192 -1
138 206 1
138 207 1
145 192 -1
145 204 -1
145 206 -1
145 207 1
146 206 1
146 207 1
151 192 -1
151 207 1
for (r in rownames(M)) {
for (c in colnames(M)) {
tmp = df[(df$colA == c & df$colB==r),]$colC
if (!(length(tmp) == 0)) {
M[(rownames(M) == r),(colnames(M) == c)]= tmp
}
}
}
代わりのループに使用これは、カスタム関数を使用してmatric updationパーツを処理するapply関数またはouter関数で実現できるかどうか疑問です。これを達成する方法を手伝ってください。
私はこのリンクを参照しようとしていましたが、運はありません。
[example input](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)と予想される出力を入力してください。 – zx8754
したがって、行と列のインデックスと値を持つdata.frameがありますか?それをマトリックスに再構成したいのですか? – Roland
私は例のデータセットを提供しましたが、マトリックス要素を1または-1で更新したいのですが、データフレームに一致するcol値を持っていますが、そうでない場合は0の初期値を残してください。 – mbansal