2012-10-30 24 views
5

Sono un novizio in R quindi, ho davvero bisogno di aiuto qui. Voglio solo ordinare ogni colonna in modo indipendente. Qualsiasi aiuto è apprezzato!Esiste un modo per ordinare le colonne di una matrice in modo indipendente in R?

> mat <- matrix(c(45,34,1,3,4325,23,1,2,5,7,3,4,32,734,2),ncol=3) 
> mat 
     [,1] [,2] [,3] 
[1,] 45 23 3 
[2,] 34 1 4 
[3,] 1 2 32 
[4,] 3 5 734 
[5,] 4325 7 2 

a

 [,1] [,2] [,3] 
[1,] 1 1 2 
[2,] 3 2 3 
[3,] 34 5 4 
[4,] 45 7 32 
[5,] 4325 23 734 
+0

+1 per esempio pulito, chiaro, semplice fornito. Nel frattempo, ti consiglio di iniziare a leggere il R-inferno http://www.burns-stat.com/pages/Tutor/R_inferno.pdf e rintracciare alcuni siti tutorial come http://cran.r-project.org/ doc/manuali/R-intro.html o http://www.cyclismo.org/tutorial/R/ –

+0

@CarlWitthoft, qualsiasi tutorial/risorse per l'analisi di microarray che utilizza R? –

+0

@SteveHwang Dai un'occhiata a Bioconductor se non lo hai ancora fatto: http://www.bioconductor.org/ – Rob

risposta

13

Sì, c'è!

apply(mat, 2, sort) 
    [,1] [,2] [,3] 
[1,] 1 1 2 
[2,] 3 2 3 
[3,] 34 5 4 
[4,] 45 7 32 
[5,] 4325 23 734 
+0

Fantastico, grazie. Domanda veloce. Semplicemente scherzando, se provassi a calcolare la media di ogni riga 'mean <- as.matrix (apply (mat, 1, mean))', perché devo scriverlo come una matrice ma non per l'ordinamento. È una proprietà intrinseca di "sort" (ad esempio, mantiene il frame dei dati così com'è)? –

+3

@SteveHwang, c'è una scorciatoia per calcolare i mezzi di riga, puoi usare 'rowMeans (mat)' questa funzione restituirà un vettore con lunghezza uguale al numero di righe nella tua matrice/data.frame –

+0

Per chiudere il ciclo 'colMeans ',' colSums' e 'rowSums' funzionano anche: http://stat.ethz.ch/R-manual/R-patched/library/base/html/colSums.html – Rob

Problemi correlati