2016-07-04 4 views
-1

Angenommen, ich habe einen großen Datenrahmen im langen Format, wobei jedes Thema 5 Zeilen belegt, mit insgesamt 5 Themen.Versuchen, Datenrahmen nach Thema in einem Befehl zu brechen

x=c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5) 
df=data.frame(x, 1:25) 

Jetzt möchte ich diese in 5 separate Datenrahmen, eine für jedes Thema zu trennen. Ich weiß, ich könnte das tun:

s01=df[df$x==1,] 

5 mal, aber ich möchte alle fünf Datenrahmen auf einmal erstellen, mit einem Befehl. Gibt es eine Möglichkeit, dies zu tun (z. B. mit einer for-Schleife oder etwas wie lapply)? Ich habe versucht mit einer for-Schleife, aber nicht sicher, wie es 5 verschiedene Objekte mit unterschiedlichen Namen ausgeben.

Antwort

1

Sie können einfach tun:

result <- split(df, df$x) 

Dies wird wieder in einer Liste verschiedenen Datenrahmen gemäß Spalte x. Sie können beispielsweise den ersten Datenrahmen durch

result[[1]] 
herausnehmen