YOB
(生年)の列を含むデータフレーム(train
)があります。関数内でDataFrameに新しい列を追加する
train$Age = 2016 - train$YOB
これは正常に動作します:私はそうのように、別の列にAge
を計算したいと思います。
問題は、他のいくつかのデータフレームに対してこの操作を(他の前処理操作と一緒に)行いたいということです。だから、私は、関数内の共通部分を抽出し、関数へのパラメータとして処理されるデータフレームを渡すことを考えていた:
preprocess = function(d) {
d$Age = 2016 - d$YOB
# other transformations...
}
上記の関数を定義した後、私はpreprocess(train)
を呼び出すことで、前述の変換を実行すると予想しました私のデータフレームしかし、それはしません。たとえば、train$Age
は、コール後にNULL
です。
preprocess
関数がデータフレームを期待どおりに変換しないのはなぜですか?これを修正する方法はありますか?
'preprocess = function(d)d $ Age << - 2016 - d $ YOB'または' preprocess = function(d)2016 -d $ YOB; d $ age < - preprocess(d) 'です。関数内で作られたオブジェクトは '<< - '以外の関数の外にはありません。 – cuttlefish44
@ crayfish44これで、 'closure'型のオブジェクトがサブセット化できないというエラーが表示される* – GolfWolf