Verweise auf neue Spalten innerhalb der Transformation

8

Ich habe ein Datenframe mit den Spalten A, B & amp; C. Ich möchte neue Spalten hinzufügen, die aus den vorhandenen Spalten und den neuen Spalten selbst berechnet werden. Um dies zu erreichen, habe ich versucht, die Transformationsfunktion wie folgt zu verwenden:

%Vor%

Aber das gibt einen Fehler:

  

Fehler in eval (expr, envir, enclos): Objekt 'NewD' nicht gefunden

Ich habe auch die cbind-Funktion wie folgt ausprobiert:

%Vor%

Aber es wird mühsam, wenn die Anzahl der zusätzlichen Spalten (Funktionen) wächst.

Wie kann ich NewD innerhalb der Transformationsfunktion referenzieren, oder gibt es eine bessere Möglichkeit, mehrere Funktionen wie diese anzuwenden? Ich möchte, dass Daten die Spalten A, B, C, NewD & amp; NewE ohne die transform function mehrmals aufrufen zu müssen.

    
Look Left 16.07.2011, 12:58
quelle

3 Antworten

5

Hadley hat eine Funktion mutate in seinem Paket plyr , das genau das tut. Hier ist das gleiche Beispiel, das @Karsten mit mutate verwendet. Ich finde mutate code für solche Aufgaben besser lesbar, da darin keine temporären Zuweisungen erforderlich sind.

%Vor%     
Ramnath 17.07.2011, 03:34
quelle
6

Vielleicht so etwas

%Vor%

macht es?

    
Karsten W. 16.07.2011 13:05
quelle
1

Hier sind ein paar Wege. Wir illustrieren anhand des eingebauten Datenrahmens BOD :

innerhalb

%Vor%

my.transform

my.transform wird hier hier definiert und erlaubt Ihnen, sich darauf zu beziehen neue Spalten:

%Vor%     
G. Grothendieck 16.07.2011 21:27
quelle

Tags und Links