Wie erstelle ich auf Basis von Spaltenwerten Komponenten (Subset) -Dataframes in R?

7

Ich würde gerne einen Datenrahmen in mehrere Komponentendatenrahmen basierend auf den Werten in einer Spalte aufteilen. In meinem Beispiel möchte ich dat.1, dat.2 und dat.3 unter Verwendung der Werte in der Spalte "cond" teilen. Gibt es einen einfachen Befehl, der das erreichen könnte?

%Vor%

Vielleicht, weil ich ein R-Neuling bin, habe ich immer noch nicht herausgefunden, wie ich das machen soll, obwohl ich die Lösungen, die in verschiedenen ähnlichen Forenanfragen vorgeschlagen wurden, durchsucht und getestet habe. Vielen Dank im Voraus für alle Antworten.

A dput() der Daten ist:

%Vor%     
dancingRobot 08.06.2011, 11:38
quelle

5 Antworten

9

Ich denke, der einfachste Weg ist via split :

%Vor%

Beachten Sie jedoch, dass diese Aufteilung eine Liste der data.frames zurückgibt.

Um einzelne data.frames aus der Liste zu erhalten, können Sie wie folgt vorgehen, indem Sie eine Schleife verwenden, um die einzelnen Objekte zu erstellen (implizit in der lapply -Anweisung):

%Vor%

Die Verwendung einer Liste ist jedoch wahrscheinlich mehr R ish und wird auf lange Sicht nützlicher sein.

Danke an Gavin für die Veröffentlichung der Daten!

    
Henrik 08.06.2011 11:50
quelle
7

Gibt es etwas, was nicht zufriedenstellend ist?

%Vor%

? Sie haben R und teilen als Tags, wissen Sie ...

    
Nick Sabbe 08.06.2011 11:50
quelle
6

Ja, split() . Wenn sich Ihre Daten beispielsweise in dat befinden, dann:

%Vor%

gibt eine Liste zurück, deren Komponenten die gewünschten Datenrahmen sind:

%Vor%     
Gavin Simpson 08.06.2011 11:50
quelle
4

Nur der Vollständigkeit halber ist hier eine Möglichkeit, dies mit dem plyr -Paket zu tun.

%Vor%

Beachten Sie die syntaktische Einfachheit, dass Sie nur dat einmal erwähnen.

    
Prasad Chalasani 08.06.2011 12:45
quelle
0

;)

%Vor%     
Wojciech Sobala 08.06.2011 13:14
quelle

Tags und Links