Slik sorterer du en dataramme etter flere kolonner
Jeg vil sortere en data.frame etter flere kolonner. Med data.frame nedenfor vil jeg for eksempel sortere etter kolonne z
(synkende) og deretter etter kolonne b
(stigende):
dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"),
levels = c("Low", "Med", "Hi"), ordered = TRUE),
x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
z = c(1, 1, 1, 2))
dd
b x y z
1 Hi A 8 1
2 Med D 3 1
3 Hi A 9 1
4 Low C 9 2
1263
3
Du kan bruke funksjonen
order()
direkte uten å ty til tilleggsverktøy - se dette enklere svaret som bruker et triks rett fra toppen avexample(order)
-koden:Edit noen 2+ år senere: Det ble nettopp spurt hvordan man gjør dette med kolonneindeks. Svaret er ganske enkelt å sende den eller de ønskede sorteringskolonnene til
order()
-funksjonen:i stedet for å bruke navnet på kolonnen (og
with()
for enklere/mer direkte tilgang).Med denne (svært nyttige) funksjonen av Kevin Wright, lagt ut i tipsdelen av R-wikien, er dette enkelt å oppnå.
Alternativt kan du bruke pakken Deducer