2016-07-16 34 views
-5

Ich habe versucht, Datenrahmen in R, aber nicht zu tun. Ich habe Datenrahmen von 4 Spalten und möchte den Datenrahmen von der 1. Spalte sortieren. Irgendeine Idee, wie kann ich Datenrahmen von Einträgen der ersten Spalte sortieren?Sortieren von Datenrahmen in R

+0

See 'order'.?. Das sollten Sie beginnen. Es gibt viele ähnliche Fragen zu SO. – lmo

Antwort

1

Sie verwenden ?order (siehe auch here und here). Betrachte:

set.seed(5443) 
(my.data <- data.frame(y=rnorm(5), 
         x1=c(1:5), 
         x2=c(TRUE, TRUE, FALSE, FALSE, FALSE), 
         X3=letters[1:5])) 
#    y x1 x2 X3 
# 1 -0.15321836 1 TRUE a 
# 2 -0.31570803 2 TRUE b 
# 3 -0.08600789 3 FALSE c 
# 4 1.83347490 4 FALSE d 
# 5 -0.96730746 5 FALSE e 
(my.data <- my.data[order(my.data[,1]),]) 
#    y x1 x2 X3 
# 5 -0.96730746 5 FALSE e 
# 2 -0.31570803 2 TRUE b 
# 1 -0.15321836 1 TRUE a 
# 3 -0.08600789 3 FALSE c 
# 4 1.83347490 4 FALSE d 
+0

Wie kommt es, die erste Spalte ist anders, nachdem Auftrag angewendet wird? – QuantTrader

+0

(Ich muss irgendwie falsch kopiert haben. Es ist jetzt behoben.) Alle Spalten sind in einer anderen Reihenfolge @QuantTrader.Siehe die Links für wie 'bestellen' funktioniert und wie man sortiert. – gung

+0

danke. Es hat funktioniert – QuantTrader

2

Wir können auch data.table verwenden. Konvertieren Sie die 'data.frame' auf 'data.table' (setDT(my.data) und stellen Sie den 'Schlüssel' als "y"

library(data.table) 
setDT(my.data, key = "y") 
my.data 
#   y x1 x2 X3 
#1: -0.96730746 5 FALSE e 
#2: -0.31570803 2 TRUE b 
#3: -0.15321836 1 TRUE a 
#4: -0.08600789 3 FALSE c 
#5: 1.83347490 4 FALSE d 

HINWEIS: Daten entnommen aus @ Gung der Post