从数据帧中删除单变量异常值(+-3 SD)

2023-12-09

我对 R 很陌生,以至于我很难在其他人的问题中找到我需要的东西。我认为我的问题太简单了,以至于没有人费心去问。

创建一个新数据框的最简单的代码是什么,该数据框排除单变量异常值的数据(我将其定义为距离其条件平均值 3 个 SD 的点),在其条件内,在某个变量上?

我很尴尬地展示我所尝试过的东西,但这就是

greaterthan <- mean(dat$var2[dat$condition=="one"]) + 
               2.5*(sd(dat$var2[dat$condition=="one"]))
lessthan    <- mean(dat$var2[dat$condition=="one"]) -
               2.5*(sd(dat$var2[dat$condition=="one"]))   

withoutliersremovedone1 <-dat$var2[dat$condition=="one"] < greaterthan

我几乎已经被困在那里了。

Thanks


> dat <- data.frame(
                    var1=sample(letters[1:2],10,replace=TRUE),
                    var2=c(1,2,3,1,2,3,102,3,1,2)
                   )
> dat
   var1 var2
1     b    1
2     a    2
3     a    3
4     a    1
5     b    2
6     b    3
7     a  102 #outlier
8     b    3
9     b    1
10    a    2

现在只返回那些不是 (!) 大于 2absolute sd是来自于mean所讨论的变量。显然把2改成任意多sd你想成为截止点吗?

> dat[!(abs(dat$var2 - mean(dat$var2))/sd(dat$var2)) > 2,]
   var1 var2
1     b    1
2     a    2
3     a    3
4     a    1
5     b    2
6     b    3 # no outlier
8     b    3 # between here
9     b    1
10    a    2

或者使用更简写scale功能:

dat[!abs(scale(dat$var2)) > 2,]

   var1 var2
1     b    1
2     a    2
3     a    3
4     a    1
5     b    2
6     b    3
8     b    3
9     b    1
10    a    2

edit

这可以扩展到使用组内查找by

do.call(rbind,by(dat,dat$var1,function(x) x[!abs(scale(x$var2)) > 2,] ))

这假设dat$var1是定义每行所属组的变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从数据帧中删除单变量异常值(+-3 SD) 的相关文章

随机推荐

  • 如何在设定的时间后自动保存并退出工作表? (Excel VBA)

    如果超过 5 分钟没有任何活动 是否有办法让打开的工作表自行关闭 举例来说 我在一张工作表上工作了一段时间 然后打开该工作表走开 20 分钟 网络上的某人需要访问该工作表 但无法访问 因为我正在其中 我希望这样在我离开办公桌超过 5 分钟后
  • 将函数从递归转换为迭代

    我写的这个函数非常慢 因为 php 不能很好地处理递归 我正在尝试将其转换为 while 循环 但我无法理解如何做到这一点 谁能给我一些建议吗 public function findRoute curLoc distanceSoFar e
  • 验证输入框中的用户输入

    当我运行以下代码片段并输入可接受的值时 我得到了所需的结果 do while len strselect 0 or strselect lt gt 1 or strselect lt gt 2 or strselect lt gt 3 st
  • 如何使用 node.js(Firefox 或 Chrome)在 Heroku 上运行 Selenium-Webdriver

    我想在 Heroku 上使用 Selenium 和 Firefox 或其他能够显示视频的浏览器 不幸的是 PhantomJS 不起作用 因为浏览器无法播放视频 我已经通过使用这些构建包在 Firefox 中进行了尝试 https githu
  • 如何使用 Python 中的 Plotly Express 向每个条形图添加可点击的链接?

    所以基本上 我希望用户在单击条形图中的条形时被定向到特定网站 但我不知道该怎么做 也找不到这方面的资源 您可以在以下位置使用 HTML注释 import pandas as pd import plotly express as px df
  • scipy.sparse.coo_matrix 如何快速找到全零列,填充 1 并标准化

    对于矩阵 我想找到全为零的列并用 1 填充 然后按列对矩阵进行归一化 我知道如何使用 np arrays 做到这一点 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 V 0 1 0 0 0
  • 检索作为 POST 响应提供的重定向 URL 中的 OAuth 代码

    这里是Python新手 所以我确信这是一个微不足道的挑战 使用 Requests 模块向 Instagram API 发出 POST 请求 以获得稍后在 OAuth 过程中用于获取访问令牌的代码 该代码通常在客户端访问 因为它在重定向 UR
  • 使用 pypng 将 24 位 PNG 文件转换为 8 位颜色索引图像

    我正在尝试编写一个 python 脚本 该脚本接受标准 24 位 png 并将其转换为 8 位 png 以实现更好的压缩 看起来 pypng 可以做到这一点 但我不太清楚如何使用它 图像处理对我来说是一个新领域 所以这可能看起来很愚蠢 我目
  • WF4.5 不编译并行 C# 工作流程

    我有一个 IIS 托管的 xamlx 工作流程 其中包含 c 表达式 我试图在并行版本控制中运行 我完全喜欢这篇文章 工作流服务的并行版本控制 工作流的新实例按预期工作 但是当我调用工作流的先前版本的实例时 它会引发错误 告诉我它尚未编译
  • 使用reactjs中的props更改更新状态值

    我有一个模式组件 应该在 setState 更改时调用 但由于某种原因它没有更新 在第一个文件中 我在渲染中设置以下内容
  • 致命错误:调用未定义的函数 mysql_connect() [重复]

    这个问题在这里已经有答案了 我收到此错误 Fatal error Call to undefined function mysql connect in var www html test1 php on line 8 对于以下代码
  • 如何缓存 angularjs 部分?

    在 angularjs 生产中缓存部分的最简单 现代的方法是什么 目前代码如下 routeProvider when error templateUrl partials error html controller ErrorCtrl 其中
  • Python 使用正则表达式解析 HTML

    我正在尝试浏览网站的 HTML 并解析它以查找班级的最大注册人数 我尝试检查 HTML 文件的每一行中的子字符串 但这会尝试解析错误的行 所以我现在使用正则表达式 我有 t t t t t t t td class odd 0 9 0 9
  • Django:注释每个对象的重复值数量的计数

    我有一个名为 Product 的模型 如下所示 产品可以具有相同的字段 bc sku class Product models Model bc sku models IntegerField null True blank True pr
  • 图书馆?静止的?动态的?还是框架?项目在另一个项目中

    我有一个现有的 iOS 应用程序 并且想要添加大量代码 这些代码是我作为另一个项目开发的 只是为了便于测试 新块基本上涉及将图像保存到各种共享服务等 因为共享代码需要大量测试和未来更新 所以我想知道将该代码块合并到我现有的应用程序中的最佳方
  • Code First 和 EF 5.0 不加载导航属性

    我正在尝试通过 Code First 和 EF 5 0 加载导航属性子对象加载为 null 下面是代码 Table ls roles public class Role Required Key public int RoleID get
  • 如何将 Double[] 转换为 double[]?

    我正在实现一个接口 其功能类似于可以包含某种类型的对象的表 该接口指定了以下功能 double getDoubles int columnIndex 让我困惑的是 在我的实现中 我将表数据存储在二维中Object array Object
  • 如何使用 Python 创建 Word 文档? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想使用 Python 创建 Word 文档 但是 我想尽可能多地重复使用现有的文档创建代码 我目前正在使用 XSLT 生成 HTML 文件以编程方
  • 如何在 PostgreSQL 中快速将二维数组取消嵌套到一维数组中?

    我有一个使用 Apache Madlib 计算的非常大的数组 我想对该二维数组中的每个数组应用一个操作 我找到了可以帮助我解除嵌套的代码这个相关答案 然而 在这个非常大的 2d 数组 150 000 1d float 数组 上 代码非常慢
  • 从数据帧中删除单变量异常值(+-3 SD)

    我对 R 很陌生 以至于我很难在其他人的问题中找到我需要的东西 我认为我的问题太简单了 以至于没有人费心去问 创建一个新数据框的最简单的代码是什么 该数据框排除单变量异常值的数据 我将其定义为距离其条件平均值 3 个 SD 的点 在其条件内