Mi a legjobb sorba rendezési módszer egy data.frame esetén?

0
0

Van egy data.frame objektumom:

(dd <- data.frame(b = factor(c("Mag", "Köz", "Mag", "Ala"), 
       levels = c("Ala", "Köz", "Mag"), ordered = TRUE),
       x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
       z = c(1, 1, 1, 2)))
##     b x y z
## 1 Mag A 8 1
## 2 Köz D 3 1
## 3 Mag A 9 1
## 4 Ala C 9 2

Szeretném több oszlop szerint is sorbarendezni. Mi a leghatékonyabb módja ennek?

  • You must to post comments
0
0

data.frame esetén (Figyelem: nem data.table !!!) alapvetően az order függvényt lehet használni. PL.:

dd[with(dd, order(-z, b)), ]
##     b x y z
## 4 Ala C 9 2
## 2 Köz D 3 1
## 1 Mag A 8 1
## 3 Mag A 9 1

vagy ugye with nélkül, de több hibalehetőséggel:

dd[order(-dd$z, dd$b), ]
##     b x y z
## 4 Ala C 9 2
## 2 Köz D 3 1
## 1 Mag A 8 1
## 3 Mag A 9 1

Lehet persze ügyeskedni a sort függvénnyel is (ami vektorok sorberendezésére találtak ki, de akár az index.return paraméter révén, akár a taRifx csomag használatával sort(dd, f= ~ -z + b ) ), de a bencmark értékek azt mutatják, hogy nem éri meg.

Tehát összefoglalóan: a jó megoldás az order parancs.

Itt jegyezném meg, hogy a data.table csomag sok csábító megoldást nyújt ezen a téren is:)

Lásd bővebben: http://stackoverflow.com/questions/1296646/how-to-sort-a-dataframe-by-columns-in-r

  • You must to post comments
1 találat mutatása
Új válasz írása

Please first to submit.