我是R的新手 . 我正在尝试动手实施泰坦尼克数据集(可在线获取) . 我正在运行一个代码来计算Age列中的缺失值 . 但我得到一个错误 - if(class [i] == 1){:缺少值需要TRUE / FALSE时出错 . 如何消除错误需要一些帮助 . 以下是使用的代码:
impute_Age <- function(Age, class){
vector <- Age
for(i in 1:length(Age)){
if (is.na(Age[i])){
if(class[i] == 1){
vector[i] <- round(mean(filter(titanic, titanic$ï..pclass==1)$age, na.rm=TRUE),0)
}else if (class[i] == 2){
vector[i] <- round(mean(filter(titanic, titanic$ï..pclass==2)$age, na.rm=TRUE),0)
}else{
vector[i] <- round(mean(filter(titanic, titanic$ï..pclass==3)$age, na.rm=TRUE),0)
}
}else{
vector[i]<-Age[i]
}
}
return(vector)
}
imputed_Age <- impute_Age(titanic$age, titanic$ï..pclass)
titanic$age <- imputed_Age
2 回答
你可以试试这个:
如果您想远离
for-loops
,可以使用嵌套的if-else
来完成此操作 .