Reduzieren Sie die rekursive Liste

8

Es gibt eine ganze Reihe von Fragen zu diesem Thema, aber ich sehe keine allgemeine Lösung: Ich habe eine tief rekursive Liste und möchte sie in eine einzige Liste aller enthaltenen Nicht-Listen-Items einfügen / p>

Nehmen Sie zum Beispiel diese verschachtelte Liste:

%Vor%

Und mach daraus folgendes:

%Vor%

Ich habe versucht, einige der folgenden, basierend auf anderen Lösungen:

%Vor%

Keine erreicht das gewünschte Ergebnis, das im Beispiel eine einzige Listenlänge 5 ist, wobei alle Elemente ein data.frame sind. Irgendwelche Vorschläge geschätzt.

    
geotheory 02.12.2017, 01:11
quelle

3 Antworten

9

Dies ist eine allgemeine Flatten-Funktion, die nur die Basis R verwendet:

%Vor%

Ergebnis:

%Vor%

Ähnlich:

%Vor%

Es scheint ein wenig runder zu sein, weitere Listen hinzuzufügen, wenn das Ziel darin besteht, sie zu entfernen, aber die list / unlist Route ist die einzige zuverlässige Möglichkeit, Listen mit verschiedenen Elementzahlen zu verketten.

    
Claus Wilke 03.12.2017, 16:34
quelle
3

Ihre Daten:

%Vor%

Erstens, eine grobe, aber effektive Funktion:

%Vor%

Die grobe aber effektive begleitende globale Variable:

%Vor%

Die Ergebnisse:

%Vor%

Weniger grobe (keine globale Variable) Lösung:

%Vor%     
hrbrmstr 02.12.2017 02:22
quelle
3

rlang::squash ist ziemlich magisch:

%Vor%     
alistaire 04.12.2017 00:18
quelle

Tags und Links