仅包含数据框中每列的异常值

2024-03-21

我有一个数据框如下:

 chr   leftPos         TBGGT     12_try      324Gtt       AMN2
  1     24352           34         43          19         43
  1     53534           2          1           -1         -9
  2      34            -15         7           -9         -18
  3     3443           -100        -4          4          -9
  3     3445           -100        -1          6          -1
  3     3667            5          -5          9           5
  3     7882           -8          -9          1           3

我必须创建一个循环:

a) 计算从第三列开始的每一列的上限和下限(UL 和 LL)。
b) 只包括掉落的行outsideUL 和 LL (Zoutliers)。
c) 然后计算 Zoutlier 与前一个方向相同(即正或负)的行数or下一行对于同一个字符.

因此,输出将是:

 ZScore1    TBGGT     12_try      324Gtt       AMN2
 nrow        4         6            4           4

到目前为止我的代码如下:

  library(data.table)#v1.9.5
  f1 <- function(df, ZCol){

  #A) Determine the UL and LL and then generate the Zoutliers
  UL = median(ZCol, na.rm = TRUE) + alpha*IQR(ZCol, na.rm = TRUE)
  LL = median(ZCol, na.rm = TRUE) - alpha*IQR(ZCol, na.rm = TRUE)
  Zoutliers <- which(ZCol > UL | ZCol < LL)

  #B) Exclude Zoutliers per chr if same direction as previous or subsequent row
  na.omit(as.data.table(df)[, {tmp = sign(eval(as.name(ZCol)))
  .SD[tmp==shift(tmp) | tmp==shift(tmp, type='lead')]},
  by=chr])[, list(.N)]}

  nm1 <- paste0(names(df)
  setnames(do.call(cbind,lapply(nm1, function(x) f1(df, x))), nm1)[]

该代码是从不同地方修补在一起的。我遇到的问题是将代码的 A) 和 B) 部分组合起来以获得我想要的输出


你能试试这个功能吗?我不知道什么alpha是的,所以我无法重现预期的输出并将其作为变量包含在函数中。

# read your data per copy&paste
d <- read.table("clipboard",header = T)
# or as in Frank comment mentioned solution via fread
d <- data.table::fread("chr   leftPos         TBGGT     12_try      324Gtt       AMN2
                                     1     24352           34         43          19         43
                                     1     53534           2          1           -1         -9
                                     2      34            -15         7           -9         -18
                                     3     3443           -100        -4          4          -9
                                     3     3445           -100        -1          6          -1
                                     3     3667            5          -5          9           5
                                     3     7882           -8          -9          1           3")


# set up the function
foo <- function(x, alpha, chr){
  # your code for task a) and b)
  UL = median(x, na.rm = TRUE) + alpha*IQR(x, na.rm = TRUE)
  LL = median(x, na.rm = TRUE) - alpha*IQR(x, na.rm = TRUE)
  Zoutliers <- which(x > UL | x < LL)
  # part (c
  # factor which specifies the direction. 0 values are set as positives
  pos_neg <- ifelse(x[Zoutliers] >= 0, "positive", "negative")
  # count the occurrence per chromosome and direction.
  aggregate(x[Zoutliers], list(chr[Zoutliers], pos_neg), length)
}

# apply over the columns and get a list of dataframes with number of outliers per chr and direction.
apply(d[,3:ncol(d)], 2, foo, 0.95, d$chr)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅包含数据框中每列的异常值 的相关文章

随机推荐

  • 尝试使用 POSIX 消息队列创建消息队列时权限被拒绝

    我正在使用以下代码片段创建一个消息队列Linux 编程接口 http man7 org tlpi if mq open my message queue O CREAT O RDWR NULL 1 perror mq creation fa
  • 自定义软键盘按键预览

    I am 使用软键盘工作 我已经完成了所有功能 但现在我只需要更改关键预览的视图当关键是 按下 目前显示了我的按键预览 默认示例键盘按键 预览 如下图所示 正如我们所看到的 当按下按键时会弹出字符 d 但现在我需要定制它 作为目前主要预览背
  • 从 pyarrow.Table 转换为 pandas 时处理大时间戳

    我有一个时间戳9999 12 31 23 59 59以 int96 形式存储在 parquet 文件中 我使用 pyarrow dataset 读取此镶木地板文件 并将结果表转换为 pandas 数据框 使用 pyarrow Table t
  • @material-ui/core 和 @types/material-ui 是什么关系?

    这里我看到一个使用material ui 的示例项目 我看到 package json 文件中有以下包 dependencies material ui core 1 4 1 devDependencies types material u
  • 基本页或基本母版页或嵌套母版页?

    我有一个包含两个母版页的网站 一个用于一列布局 一个用于两列布局 它们嵌套在提供通用页眉和页脚的母版页中 我希望每个内容页面都具有功能 我是不是该 创建一个页面基类并在我的内容页面中继承它 或者 创建一个母版页基类并在我的嵌套母版页级别之一
  • 编写依赖于其他键的更复杂的 json 模式

    我一直在编写简单的 JSON 模式 但遇到了一个稍微复杂一点的 API 输入调用 我有一条宁静的最终路线 可以采用 3 种截然不同类型的 JSON 本地主机 foo 可以采取 类型 冰淇淋 锥体 华夫饼 or 类型 热狗 小圆面包 小麦 如
  • Onclick 图像按钮 - 逻辑没有意义[重复]

    这个问题在这里已经有答案了 我对 Javascript html 中这个非常简单的 onClick 函数感到非常困惑 我知道对此有很多问题 但鉴于我的脚本的作用 或者在本例中没有 无法完全找到答案 它应该很简单 但由于某种原因 逻辑也没有像
  • 使用 @PersistenceContext 为空 EntityManager

    我正在尝试使用 Spring Boot 的简单编码 在实体管理器中使用 PersistenceContext 在 MySQL 中创建一个对象 但我发现我的实体管理器对象为空 不知道为什么 因为使用的方法实体管理器有 transaction注
  • 在 ASP.NET 应用程序中是否强制注入 DbContext .InPerRequestScope?

    我一直在我的 ASP NET MVC3 门户中使用 Ninject IoC 容器 每当我注入实体框架时DbContext in PerThread范围 我的数据不一致 在对实体进行更改后一段时间内不会显示更改等 在我切换 IoC 配置以解析
  • 在 PHPStorm 中复制并粘贴字符串(波斯语、阿拉伯语)是错误的

    在 PHPStorm 中复制并粘贴字符串 波斯语 阿拉伯语 是错误的 我的字符串是 巴巴尼 巴尼巴巴 描述如图 如何解决这个问题呢 在安装目录下的文件中bin idea properties add one以下的 editor new re
  • 如何在Jboss AS 7.0中启用Quartz调度?

    Quartz 似乎没有包含在 Jboss AS 7 0 Final 完整版 的默认安装中 当尝试加载消息驱动 Bean MDB FareMonitorBean 时 我的 EAR 部署似乎失败 该MDB 是quartz 调度执行的内容 错误信
  • 当方法尝试使用可以为空的字段时抛出哪个异常? [复制]

    这个问题在这里已经有答案了 我实际上正在从事框架开发 这意味着需要非常强大的编码方法 我面临一个问题 我不知道需要抛出哪个 System Exception 派生类 基本上情况是 我有一个类 其中的字段可以由构造函数选择性地初始化 并且具有
  • 如何在 Android 中找到附近的应用程序用户?

    我正在制作一个应用程序 需要能够找到附近的人 他们是我的应用程序的用户 我看了很多类似问题的答案 似乎我别无选择 只能不断将用户的当前位置上传到服务器 并在必要时获取附近的用户列表 那么我的问题是 1 要获取附近的列表 应该有一些计算距离的
  • Zuul 调用的基本身份验证服务

    我是 Zuul 作为边缘服务器 所以所有请求都经过此边缘服务器 我有一个微服务A A的所有Web服务都受到基本身份验证的保护 我们如何通过Zuul代理来调用A b 的服务呢 我应该为消息添加标头吗 这是我的 Zuul 过滤器 public
  • FullScreenChange 事件不起作用

    我尝试绑定 FullScreenChange 事件 但它不起作用 也许我做错了什么 document bind webkitfullscreenchange mozfullscreenchange fullscreenchange func
  • _1 是 C++0x 的一部分吗?

    我见过two https stackoverflow com questions 4008369 recent answers https stackoverflow com questions 4009530 using 1作为纯 C 0
  • PyArrow 表:过滤行

    我有一个RecordBatch从 Plasma DataStore 中 我可以将其读入pyarrow RecordBatch or a pyarrow Table 我现在尝试在将其转换为 pandas 之前过滤掉行 to pandas 有没
  • 当我没有使用任何广告服务时,应用程序因“IDFA 不正确”而被拒绝

    I use 谷歌分析在我的应用程序中 所以它需要广告支持框架 从昨天开始 当我尝试发布更新时 我的应用程序被拒绝 并显示以下错误消息 亲爱的开发者 我们发现您最近的交货存在一个或多个问题 Zee新闻英语 为了处理您的交货 需要解决以下问题
  • 在 pdf 中添加撤销详细信息,同时签名

    我已经使用 PC 上附加的数字令牌对 pdf 进行了数字签名 使用库 itext Sharp 附加相同的内容 当我在 adobe reader 中打开相同内容时 它显示无法执行撤销 当我看到详细信息时 它显示颁发者证书之一被撤销未检查错误
  • 仅包含数据框中每列的异常值

    我有一个数据框如下 chr leftPos TBGGT 12 try 324Gtt AMN2 1 24352 34 43 19 43 1 53534 2 1 1 9 2 34 15 7 9 18 3 3443 100 4 4 9 3 344