我想爲指定的數據集創建變量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 。有什麼想法嗎?
有沒有一種很好的方式來返回一個數據框架保持原來的名字?例如,不需要在上面的代碼中指定df < - d? –
看我上面的修改。請注意,在原始版本中,您不會使用'df < - d',您可以使用'df <-add_ages(df)'。 – Josh