2012-10-30 17 views
5

Jestem nowicjuszem w R, więc naprawdę potrzebuję pomocy. Chcę tylko posortować każdą kolumnę niezależnie. Każda pomoc jest doceniana!Czy istnieje sposób sortowania kolumn macierzy niezależnie w 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 

do

 [,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 dla czystego, przejrzystego, prostego przykładu. Tymczasem, pozwól mi zalecić, abyś zaczął czytać R-inferno http://www.burns-stat.com/pages/Tutor/R_inferno.pdf i wyśledzić kilka tutorialowych stron takich jak http://cran.r-project.org/ doc/manuals/R-intro.html lub http://www.cyclismo.org/tutorial/R/ –

+0

@CarlWitthoft, wszelkie samouczki/zasoby do analizy mikromacierzy za pomocą R? –

+0

@SteveHwang Sprawdź Bioconductor, jeśli jeszcze nie: http://www.bioconductor.org/ – Rob

Odpowiedz

13

Tak, jest!

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

Awesome, thank you. Szybkie pytanie. Po prostu się z tym pogodzę, gdybym spróbował obliczyć średnią z każdego wiersza "średnia <- as.matrix (apply (mat, 1, mean))", dlaczego mam go rzucić jako matrycę, ale nie do sortowania. Czy jest to nieodłączną właściwością sortowania (np. Zachowuje ramkę danych taką jaka jest)? –

+3

@SteveHwang, istnieje skrót do obliczania średnich wierszy, możesz użyć 'rowMeans (mat)' ta funkcja zwróci wektor o długości równej liczbie wierszy w twojej macierzy/data.frame –

+0

Aby zamknąć pętlę 'colMeans ',' colSums' i 'rowSums' działają również: http://stat.ethz.ch/R-manual/R-patched/library/base/html/colSums.html – Rob

Powiązane problemy