R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Komento order()

Komento order() lajittelee havainnot nousevaan tai laskevaan järjestykseen. Esimerkiksi seuravassa muodostetettavan taulukon d rivit saadaan järjestetty muuttujan x suhteen numeeriseen järjestykseen yhdistämällä havaintojen järjestäminen ja rivien poiminta alaindeksillä:

d<-data.frame(x = c(1,1,3:1,1:4,3), 
              y = c(9,9:1), 
              z = c(2,1:9)
             )
d[order(d$x),]
 
   x y z
1  1 9 2
2  1 9 1
5  1 6 4
6  1 5 5
4  2 7 3
7  2 4 6
3  3 8 2
8  3 3 7
10 3 1 9
9  4 2 8

Argumentilla decreasing voi määrittää, haluaako rivit nousevaan vai laskevaan järjestykseen:

> d[order(d$x, decreasing=TRUE),]
 
   x y z
9  4 2 8
3  3 8 2
8  3 3 7
10 3 1 9
4  2 7 3
7  2 4 6
1  1 9 2
2  1 9 1
5  1 6 4
6  1 5 5

Lajittelusuunta voidaan määritellä myös yksittäisille sarakkeille sijoittamalla niiden eteen miinus-merkki tai jättämällä se pois esimerkiksi seuraavasti:

d[order(d$x, d$y),]
   x y z
6  1 5 5
5  1 6 4
1  1 9 2
2  1 9 1
7  2 4 6
4  2 7 3
10 3 1 9
8  3 3 7
3  3 8 2
9  4 2 8
 
d[order(d$x, -d$y),]
   x y z
1  1 9 2
2  1 9 1
5  1 6 4
6  1 5 5
4  2 7 3
7  2 4 6
3  3 8 2
8  3 3 7
10 3 1 9
9  4 2 8

Jostakin syystä tuo miinus-merkin käyttö oli aiemmin jäänyt minulta huomaamatta, ja olekin aina lajitellut useampien sarakkeiden perusteella Excel-ohjelmaa käyttäen, jos sellaiseen on ollut tarvetta. Aina sitä oppii uutta!


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *