Я хочу создать переменные age10, age20, age30 и т. Д. Для заданного набора данных. Вход для функции add_ages представляет собой кадр данных с именем df, где новые переменные создаются на основе их отношения к существующему возрасту переменной.Создать новые столбцы внутри цикла
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 <- d в приведенном выше коде? –
См. Мое редактирование выше. Обратите внимание, что в исходной версии вы не использовали бы 'df <- d', вы бы использовали' df <-add_ages (df) '. – Josh