Ich habe einen großen Datenrahmen, den ich in verschiedene (kleinere) Datenrahmen aufteilen möchte, die ein Element in einer von zwei verschiedenen Spalten enthalten. Gehe ich davon aus, einen Datenrahmen wie die haben unten:Wie teilen Sie einen Datenrahmen nach einem Element in einer von zwei verschiedenen Spalten?
v1 v2 v3 v4 v5
mom dad 2 4 5
bro mom 5 3 4
sis dad 3 4 2
bro sis 3 7 9
ich dies in 4 separate Daten teilen möchten Rahmen eine für jede der eindeutigen Werte in v1 oder v2. Der neue Datenrahmen sollte wie folgt aussehen:
$mom
v1 v2 v3 v4 v5
mom dad 2 4 5
bro mom 5 3 4
$dad
v1 v2 v3 v4 v5
mom dad 2 4 5
sis dad 3 4 2
$sis
v1 v2 v3 v4 v5
sis dad 3 4 2
bro sis 3 7 9
$bro
bro mom 5 3 4
bro sis 3 7 9
ich in der Lage war für Schleife dies mit einem tun, aber ich mag, dass die End-Ausgabe eine Liste sein, so dass es einfach ist, Funktionen über jedes Element ausführen. Die for-Schleife ich verwendet habe, sieht wie folgt aus:
for(i in 1:length(us)){
subset.dataframe <-dataframe[dataframe$v1 == us[i] | dataframe$v2 == us[i],]
}
, wo die „uns“ ist ein Vektor der einzigartigen Werte von den beiden (v1 und v2) Spalten kombiniert.
Vielen Dank im Voraus für jede Hilfe, die Sie zur Verfügung stellen können.
Von der übermäßig kompliziert-Code-Abteilung - 'c (split (df, pmax (df $ v1, df $ v2)), Split (df, pmin (df $ v1, df $ v2))) ' – thelatemail