2012-04-16 6 views
1

Rで置換する行列の列をどのように並べ替えることができますか?私はrmperm {sna}という1つの関数を見つけましたが、列を並べ替えるだけで、列と行の両方を並べ替えます。置換とクラスタリングを持つ行列の列を置換する

編集: 1000回のランダム化後に最終的なツリーを持つように、1000回の行列を並べ替えてから階層的なクラスタリングを行う必要があります。

多くのありがとうございます。

答えて

1

sample()機能を試してください。 sample()

> m <- matrix(as.integer(runif(9,0,9)),ncol=3) 
> m 
    [,1] [,2] [,3] 
[1,] 5 0 5 
[2,] 6 0 0 
[3,] 2 1 3 
> permuted <- m[,sample(ncol(m), 10, replace=TRUE)] 
> permuted 
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] 5 0 5 5 5 5 0 5 5  5 
[2,] 0 0 0 0 6 0 0 0 6  0 
[3,] 3 1 3 3 2 3 1 3 2  3 

最初の引数はサンプル(1:x)の範囲を指定し、2番目の引数は(size)を選択する項目の数を指定し、replaceパラメータが(私たちは、交換を使用するかどうかを指定しますsize> xなら必須)。

+0

ありがとうございます。 1000回のランダム化の後に最終的なツリーを持つように、マトリックスを1000回並べ替え、階層的なクラスタリングを行う必要があります。これは私の行列を完全に置き換えますが、もし私がループを入れ、その中に順列を入れ、ループ内でクラスタリングを行うならば。ループの外側でクラスタリング結果をプロットする必要がありますか?ありがとう! – DianaHelen

+0

おそらく、ループの前にいくつかの変数を定義して、結果を保存し、ループが完了した後にそれらをマージ/プロットしたいと思うでしょう。 –

+0

これは私が紛失した場所です。 { 置換された< - test2_matrix [、sample(ncol(test2_matrix)、12、replace = TRUE)] d = dist(置換、メソッド= "ユークリッド"、diag} png(ファイル名= "cluster_dendrogram_bootstrap.png"、幅= 1024、高さ= 1024、ポイントサイズ(= FALSE、上= FALSE、p = 2) クラスタ= hclust = 10) plot(clust) ' – DianaHelen