【发布时间】:2017-10-01 18:21:10
【问题描述】:
我正在尝试删除 r 中数据集的特定列的异常值(替换为 NA):
dat2 <- read.csv("~/Rutas Grises/dat2.csv")
这是列摘要,它有 NA:summary(dat2$pct_desti_unicos_sms)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
0.2632 0.5587 1.0470 8.4050 2.5640 100.0000 673
定义阈值:f<-quantile(dat2$pct_desti_unicos_sms,3/4,na.rm = T)*1.5
我如何尝试删除异常值
ifelse(test = !is.na(dat2$pct_desti_unicos_sms) & dat2$pct_desti_unicos_sms > f,
yes = pct_desti_unicos_sms <- NA,
no = pct_desti_unicos_sms <- dat2$pct_desti_unicos_sms)
但它转换为 NA 或 NAN 的所有内容:
dat2$pct_desti_unicos_sms<-as.numeric(dat2$pct_desti_unicos_sms)
summary(dat2$pct_desti_unicos_sms)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
NA NA NA NaN NA NA 1911
【问题讨论】:
-
我们不知道
dat2$pct_desti_unicos_sms长什么样 -
ifelse的语法错误。应该是pct_desti_unicos_sms <- ifelse(!is.na(dat2$pct_desti_unicos_sms) & dat2$pct_desti_unicos_sms > f, NA, dat2$pct_desti_unicos_sms)
标签: r replace null outliers quantile