【发布时间】:2017-02-28 14:02:34
【问题描述】:
我正在尝试在数据框特定列中估算缺失值。
我的意图是通过其他列的组来替换它。
我使用aggregate保存了汇总结果:
# Replace LotFrontage missing values by Neighborhood mean
lot_frontage_by_neighborhood = aggregate(LotFrontage ~ Neighborhood, combined, mean)
现在我想实现这样的东西:
for key, group in lot_frontage_by_neighborhood:
idx = (combined["Neighborhood"] == key) & (combined["LotFrontage"].isnull())
combined[idx, "LotFrontage"] = group.median()
这当然是python代码。
不知道如何在 R 中实现这一点,有人可以帮忙吗?
例如:
Neighborhood LotFrontage
A 20
A 30
B 20
B 50
A <NA>
NA 记录应替换为 25(Neighborhood A 中所有记录的平均 LotFrontage)
谢谢
【问题讨论】:
-
你能提供预期输出的样本数据吗?
-
@count 添加,谢谢
-
require(dplyr);dat %>% group_by(Neighborhood) %>% mutate(LotFrontage = ifelse(is.na(LotFrontage ),mean(LotFrontage ,na.rm=TRUE),LotFrontage ))