【发布时间】:2016-10-04 10:10:32
【问题描述】:
在数据框中有一个名为YOB 的变量。如您所见,共有 333 个 NA 值。
> summary(train$YOB)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1880 1970 1983 1980 1993 2039 333
我发现了一些异常值并想摆脱它们。应删除小于 1900 和大于 2003 的任何内容。我试图通过索引来做到这一点。
train = train[which(train$YOB >= 1900 & train$YOB <= 2003),]
不幸的是,YOB 变量为 NA 的观测值也被删除。
> summary(train$YOB)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1900 1970 1983 1980 1993 2003
顺便说一句,我在使用subset 命令时遇到了同样的问题。
> train = subset(train, YOB >= 1900 & YOB <= 2003)
> summary(train$YOB)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1900 1970 1983 1980 1993 2003
我也尝试在两次尝试中使用此条件,但均未成功,例如
> train = train[which(!is.na(train$YOB) & train$YOB >= 1900 & train$YOB <= 2003),]
> summary(train$YOB)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1900 1970 1983 1980 1993 2003
我想在YOB 变量中保留具有NA 的观察结果,并且只删除那些是数字的。第二步是估算缺失值。
【问题讨论】:
-
行得通,谢谢@akrun - 如果有人能解释其中的区别,我很乐意接受答案。
标签: r subset na missing-data