Warum funktioniert die faule Auswertung nicht in dieser R-Funktion? [Duplikat]

8

Ich möchte eine Funktion schreiben, die ein data.frame sortiert - anstatt die umständliche Reihenfolge () zu verwenden. Gegeben etwas wie

%Vor%

Ich möchte etwas sagen wie:

%Vor%

Also hier ist meine Funktion:

%Vor%

Ich war wirklich stolz darauf. Bei der Lazy-Auswertung von R dachte ich, dass der ... -Parameter nur dann ausgewertet würde, wenn er benötigt würde - und zu diesem Zeitpunkt wäre er aufgrund von "mit" in Reichweite.

Wenn ich die 'mit' Zeile direkt ausführe, funktioniert es. Aber die Funktion nicht.

%Vor%

Was ist falsch und wie kann ich es beheben? Ich sehe diese Art von "Magie" häufig in Paketen wie zum Beispiel plyr. Was ist der Trick?

    
dk. 11.10.2012, 17:59
quelle

2 Antworten

7

Das liegt daran, dass du, wenn du vorbeifährst, kein Objekt passierst. Setzen Sie ein browser in Ihre Funktion und Sie werden sehen, was ich meine. Ich habe das irgendwo von einem Internet-Roboter gestohlen:

%Vor%

funktioniert.

Also, wenn Sie nach einem schönen Weg suchen, dies in einem sinnvollen Sinn zu tun:

%Vor%     
Tyler Rinker 11.10.2012, 18:17
quelle
9

Dies wird tun, was Sie wollen:

%Vor%

Und so wird das:

%Vor%     
Josh O'Brien 11.10.2012 18:17
quelle

Tags und Links