用众数替补法处理缺失值
# 自定义众数函数
stat.mode <- function(x, rm.na = TRUE){
if (rm.na == TRUE){
y = x[!is.na(x)]
}
res = names(table(y))[which.max(table(y))]
return(res)
}
# 自定义函数,实现分组替补
my.impute <- function(data, category.col = NULL,
miss.col = NULL, method = stat.mode){
impute.data = NULL
for(i in as.character(unique(data[,category.col]))){
sub.data = subset(data, data[,category.col] == i)
sub.data[,miss.col] = impute(sub.data[,miss.col], method)
impute.data = c(impute.data, sub.data[,miss.col])
}
data[,miss.col] = impute.data
return(data)
}
第二个自定义函数看不懂,尤其是data[,NULL] 不知道什么意思,望大神请教。
final_house <- subset(my.impute(House, '区域', '建筑时间'),select = c(type.new,floow,面积,价格.W.,单价.平方米.,建筑时间))
还有后面运行这个函数,my.impute(House, '区域', '建筑时间')。这块也不清楚什么意思,望大神请教。