同じ名前の行に対して行列(U)を列方向に並べ替える必要があります。今私は、同じ行を探して行列をループにしたいR:ループ行列を特定の行ごとに個別に並べ替えます
1 2
1 5 6
1 -4 4
1 6 -2
2 7 -2
2 -2 3
し、このマトリックスが得られ、同じrow.nameを持つ列を並べ替える::私の(非常に大きい)行列は次のようになり
1 2
1 -4 -2
1 5 4
1 6 6
2 -2 -2
2 7 3
今までの私のコードは次のようになります。
まずステップた作品行数、:
z <- 1
for(i in (1:nrow(U))){
if(row.names(U)[i] != row.names(U)[i-1]){
z = (sum(row.names(U) == row.names(U)[i]))+1}}
を
今私は、行のソート機能をカウントした後に追加したいと私は手動で行の最初のセットのためにこれを試してみました:
x <- 1
for(x in (1:ncol(U))){
U[1:3,x]<- U[do.call(order, lapply(x:NCOL(U), function(x) U[1:3, x]
しかし、このループは、一方では非常に遅く、一方、それだけ最初の列を正しく塗りつぶす
パフォーマンスの問題を考慮しながらソート機能を改善する方法をお勧めしますか?
編集:これは私の最初の編集で混乱していたと思います。私の行列の最初の「列」はrow.namesであり、この例では5x2行列です。
あなたの適用関数は、私が後にしたものとまったく同じです。ありがとうございました :) – Max