指定したデータセットに対してage10、age20、age30などの変数を作成したいと考えています。 add_ages関数の入力はdfという名前のデータフレームであり、新しい変数は既存の変数ageとの関係に基づいて作成されます。私は上記のコードを実行したときにループ内で新しい列を作成する
df <- data.frame(age=sample(1:100,10,replace=T))
add_ages <- function(d){
for(i in seq(10,100,10)){
d[,paste0("age",i)] <<- ifelse(i>=d[,"age"] & d[,"age"]<i+10,1,0)
}
}
add_ages(d=df)
はしかし、私は次のエラーを取得する:
Error in d[, paste0("age", i)] <<- ifelse(i >= d[, "age"] & d[, "age"] < :
object 'd' not found
私はdが見つからない、なぜ私はそれがDFであることを定義していたとき、私は、理解していません。何かご意見は?
元の名前を維持してデータフレームを返す良い方法はありますか?たとえば、上記のコードでdf < - dを指定する必要はありませんか? –
上記の私の編集を参照してください。元のバージョンでは 'df < - d'は使用しないことに注意してください。' df <-add_ages(df) 'を使用してください。 – Josh