Erhalte Elementnamen in Rapply

8

Die wenig genutzte rapply -Funktion sollte eine perfekte Lösung für viele Probleme sein (zB dieser ). Es bleibt jedoch die vom Benutzer geschriebene Funktion f übrig, die nicht wissen kann, wo sie sich in der Struktur befindet.

Gibt es eine Möglichkeit, den Namen des Elements in der verschachtelten Liste an f in einem rapply -Aufruf zu übergeben? Leider ruft rapply .Internal ziemlich schnell auf.

    
Ari B. Friedman 01.02.2013, 22:22
quelle

2 Antworten

1

Ich habe kürzlich mit verschachtelten Listen mit beliebiger Tiefe gekämpft. Letztendlich kam ich in meinem Fall zu einer mehr oder weniger akzeptablen Entscheidung. Es ist nicht die direkte Antwort auf Ihre Frage (keine rapply Verwendung), aber es scheint die gleichen Probleme zu lösen. Ich hoffe, es kann helfen.

Anstatt zu versuchen, auf Namen von Listenelementen in rapply zuzugreifen, habe ich einen Vektor von Namen erzeugt und nach Elementen abgefragt.

%Vor%

Das Erzeugen von Vektornamen ist in meinem Fall sehr schwierig. Insbesondere sollten Namen von Listenelementen sicher sein, d. H. Ohne . symbol.

%Vor%

Der nächste Schritt ist der Zugriff auf das Listenelement über den String-Namen. Ich habe nichts besseres gefunden, als temporäre Dateien zu verwenden.

%Vor%

Hier gibt f nur den Wert von x zurück, wobei x eine Zeichenfolge mit dem vollständigen Namen des Listenelements ist.

Schließlich können wir die Liste auf pseudorekursive Weise abfragen.

%Vor%     
redmode 02.02.2013 09:34
quelle
0

Mit Bezug auf die Frage Finden Sie die Indizes eines Elements in einer verschachtelten Liste? , Sie können schreiben:

%Vor%

dann,

%Vor%     
kohske 02.02.2013 11:06
quelle

Tags und Links