【发布时间】:2018-12-01 16:51:33
【问题描述】:
大家好,我正在寻找一种优雅的方式来在我的数据集中估算 NA:
Sex Age
M 20
M 21
F 30
M NA
F 26
F 29
F NA
我想为每种性别估算不同的年龄平均值。我假设女性和男性的年龄分布略有不同。不幸的是,如果不创建新列然后再次放入数据集中,我认为不可能做到这一点。即使我走这条路它也行不通,我认为我想多了这个问题:
males <- train[train[, "Sex"]=="male", ]
females <- train[train[, "Sex"]=="female", ]
mf <- mean(train$Age, na.rm = TRUE)
mm <- mean(train$Age, na.rm = TRUE)
train[train$Age == NA & train$Sex == "male", "Age"] <- mf
Error in '[<-.data.frame`(`*tmp*`, males$Age == NA & males$Sex == "male",
: missing values are not allowed in subscripted assignments of data frames
请问有什么建议吗?
【问题讨论】:
-
您必须使用
is.na(train$Age)来检查缺失值。 -
谢谢,我已经知道了,但不是问题的线索。
-
@Tom - 你正在使用
train$Age == NA- 试试is.na(train$Age),如user2974951答案所示 -
对不起,我没有理解逻辑。谢谢!
标签: r