Suchen Sie leere Listen in einer verschachtelten Liste von Listen

8

Wie kann ich bei einer beliebig verschachtelten Liste feststellen, ob eine Liste leere Listen enthält? Betrachten Sie das folgende Beispiel:

mylist <- list(list("foo", "bar", "baz", list(list())))

Ich habe versucht, rapply , aber das überspringt Listen. Während ich lapply verwenden könnte, müsste ich vorher die Verschachtelungstiefe kennen. Für diese Übung muss ich nicht wissen, wo die Liste ist (obwohl das ein Bonus wäre), ich brauche nur einen Weg, um festzustellen, ob es eine gibt.

    
sebastian-c 07.07.2016, 14:22
quelle

2 Antworten

8

Was ist mit einer Funktion wie dieser?

%Vor%

Grundsätzlich erstellen wir eine rekursive Funktion, um nach Listen der Länge 0 zu suchen.

%Vor%

Und hier ist eine Änderung, um den Index der leeren Liste zu finden

%Vor%

Dies sollte einen Vektor des Indexes zurückgeben, den Sie verwenden können, um die leere Liste zu finden. Zum Beispiel

%Vor%

Wenn der erste Parameter selbst eine leere Liste ist, wird 0

zurückgegeben %Vor%

und wenn es keine leere Liste gibt, sollte es einen leeren Vektor zurückgeben

%Vor%     
MrFlick 07.07.2016, 14:32
quelle
5

Eine weitere praktische Option für die Arbeit mit verschachtelten Listen ist die Verwendung von data.tree package:

%Vor%     
Psidom 07.07.2016 15:01
quelle

Tags und Links