Ich habe einen Datenrahmen (train
), der eine YOB
(Jahr der Geburt) Spalte enthält. Ich mag die Age
in einer separaten Spalte berechnen, etwa so:Neue Spalte zu DataFrame innerhalb einer Funktion hinzufügen
train$Age = 2016 - train$YOB
Dies funktioniert gut.
Das Problem ist, dass ich diese Operation (zusammen mit anderen Vorverarbeitungsoperationen) auch für eine Reihe anderer Datenframes durchführen möchte. Also, ich dachte, die gemeinsamen Elemente in einer Funktion zu extrahieren und die Datenrahmen übergeben als Parameter an die Funktion zu verarbeiten:
preprocess = function(d) {
d$Age = 2016 - d$YOB
# other transformations...
}
Nach der Definition der Funktion oben, erwartete ich, dass preprocess(train)
Aufruf würde die oben erwähnten Transformationen durchführt auf mein Datenrahmen. Aber das tut es nicht. Zum Beispiel ist train$Age
NULL
nach dem Anruf.
Warum transformiert die preprocess
-Funktion den Datenrahmen nicht wie erwartet? Gibt es eine Möglichkeit, das zu beheben?
'preprocess = Funktion (d) d $ Alter << - 2016 - d $ YOB' oder' preprocess = Funktion (d) 2016 - d $ YOB; d $ age <- preprocess (d) '. Objekt, das in Funktion gemacht wurde, ist nicht außerhalb der Funktion, außer für '<< -'. – cuttlefish44
@ crayfish44 Jetzt bekomme ich eine Fehlermeldung, dass * Objekt vom Typ 'closing' ist keine Teilmenge * – GolfWolf