r - R中的异常值截止
问题描述
我试图切断数据帧变量的异常值,但它没有按预期执行:
outlier_cutoff1 <- quantile(myd$nov, 0.75) + 1.5 * IQR(myd$nov)
index_outlier1 <- which(myd$nov > outlier_cutoff1)
mydnov <- myd[-index_outlier1, ]
此代码不会给出错误,但不会更改异常值。
解决方案
这里没有必要which
。
查看您的代码,我认为您可以使用以下内容删除“异常值”:
outlier_cutoff1 <- quantile(myd$nov, 0.75) + 1.5 * IQR(myd$nov)
index_outlier1 <- (myd$nov > outlier_cutoff1)
mydnov <- myd[-index_outlier1, ]
这是一个可重复的示例,可验证有效(使用向量)。
set.seed(123)
nov <- rnorm(500)
outlier_cutoff1 <- quantile(nov, 0.75) + 1.5 * IQR(nov)
#This is 2.574977
index_outlier1 <- nov > outlier_cutoff1
#This returns a logical vector inticating when each value is greater than 2.574977
mydnov <- nov[-index_outlier1]
length(nov) #500
length(mydnov) #499, one was removed
推荐阅读
- java - 是否可以在一次操作中通过键从 Ignite 缓存中获取多个值,在服务器端应用额外的过滤?
- javascript - 与产品搜索相关的基本 HTML 命名法中的问题
- project-reactor - Disposable.dispose() 会让已经在 Flux 中的对象完成处理吗?
- python - 尽管 xpath 正确,但使用 selenium 单击链接不起作用
- python - 我收到此错误:任务已销毁但未决
- sql - 我可以在子查询中对主键执行左连接吗?
- amazon-web-services - 我们如何将 amazon lex bot 语音改进为地址文本?
- twilio - Twilio:通过调用动态启动新的 Studio Flow
- python - 我将如何编写一个 pandas apply lambda 函数,将值与外部列表中的相同索引值进行比较?
- docusignapi - 收件人签名自拍 | Docusign 休息 API | C#