寻找数据帧值的范围

2024-01-22

我有 2 个数据框:

> access
     V1     V2     V3
1 chr10 136122 136533
2 chr10 179432 179769
3 chr10 182988 183371
4 chr10 224234 224489
5 chr10 237693 237958

and

> peaks
     V1     V2     V3
1 chr10 126122 126533
2 chr10 179450 179730
3 chr10 182788 183350
4 chr10 224244 224500
5 chr10 237695 237950

V2 和 V3 列是start and end两个数据框中的区域(范围)。我想保留这些行peaks其数据框access$V1 == peaks$V1AND 属于以下范围(或区域)access数据框。例如,新的数据框将类似于:peaks数据框的

  • 第一行区域不存在于access数据框,因此它将被分配类别U.

  • 第 2 行peaks落在给定范围内access数据框(第二行)并将被分配类别B.

  • 第 3 排peaks并不完全落在该区域,但它在某种程度上与第三行中的区域重叠access,为此我将分配类别A.

  • 第 4 行peaks在访问第 4 行区域末尾之后的 11 个数字处也没有完全重叠,这也将属于类别A.

  • 第五行属于该区域,因此将属于类别B.

预期输出:

> newdf   
     V1     V2     V3 V4
1 chr10 126122 126533  U
2 chr10 179450 179730  B
3 chr10 182788 183350  A
4 chr10 224244 224500  A
5 chr10 237695 237950  B

以下是输入数据帧的输出:

> dput(peaks)
structure(list(V1 = structure(c(1L, 1L, 1L, 1L, 1L), .Label = "chr10", class = "factor"), 
    V2 = c(126122L, 179450L, 182788L, 224244L, 237695L), V3 = c(126533L, 
    179730L, 183350L, 224500L, 237950L)), .Names = c("V1", "V2", 
"V3"), class = "data.frame", row.names = c(NA, -5L))

> dput(access)
    structure(list(V1 = structure(c(1L, 1L, 1L, 1L, 1L), .Label = "chr10", class = "factor"), 
        V2 = c(136122L, 179432L, 182988L, 224234L, 237693L), V3 = c(136533L, 
        179769L, 183371L, 224489L, 237958L)), .Names = c("V1", "V2", 
    "V3"), class = "data.frame", row.names = c(NA, -5L))

Edit:

我的新访问 df 如下所示,现在我还想在最终输出 df 中附加最后一列:

> access
     V1     V2     V3  V4
1 chr10 136122 136533  found
2 chr10 179432 179769  notFound
3 chr10 182988 183371  found
4 chr10 224234 224489  found
5 chr10 237693 237958  notFound

所以现在有一个额外的条件,如果 access 中的行落在峰值范围内,则还将 V4 中的值附加到最终 df 的新列中,如果未找到某个区域,则默认情况下将是notFound。因此,最终输出将是:

> newdf   
     V1     V2     V3 V4 V5
1 chr10 126122 126533  U notFound
2 chr10 179450 179730  B notFound
3 chr10 182788 183350  A found
4 chr10 224244 224500  A found
5 chr10 237695 237950  B notFound

Here in row1$V5该值未找到,因为未找到该区域,在其余情况下,我们从修改后的访问 df 中获取了 V5 中的值。


如果速度是一个问题,链接data.table解决方案可能会更好,但也可以通过dplyr,但可能要慢得多:

library(dplyr)
names(access)[2:3] <- c('start', 'end')

bind_cols(peaks[-1], access) %>%
  rowwise() %>% 
  mutate(V4 = if_else(all(V2:V3 %in% start:end), 'B',
                      if_else(any(V2:V3 %in% start:end), 'A',
                              'U')))

Result:

Source: local data frame [5 x 6]
Groups: <by row>

# A tibble: 5 x 6
      V2     V3     V1  start    end    V4
   <int>  <int> <fctr>  <int>  <int> <chr>
1 126122 126533  chr10 136122 136533     U
2 179450 179730  chr10 179432 179769     B
3 182788 183350  chr10 182988 183371     A
4 224244 224500  chr10 224234 224489     A
5 237695 237950  chr10 237693 237958     B
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

寻找数据帧值的范围 的相关文章

随机推荐

  • 无法通过 rebase 拉取

    我收到这条消息 Cannot pull with rebase You have unstaged changes Please commit or stash them 是的 我有一些未提交的更改 我搜索了一种方法 在从拉取中获得的新代码
  • Apple 二进制文件被拒绝 (2.16)

    我的应用程序需要用户当前位置来向他显示前往谷歌地图中特定位置的方向 下面是在网络视图上显示位置的代码 self getDirectionsWebView loadRequest NSURLRequest requestWithURL NSU
  • TailwindCSS 中的中心固定元素

    当成功验证页面时 我会出现一条闪现消息 我正在尝试弄清楚如何将其在任何设备上水平居中 我正在使用 TailwindCSS 来调整 div 的位置并尝试过fixed and absolute确保它出现在我的内容之上 但使用类似的属性left
  • 带 blit 的 Matplotlib 动画——如何更新绘图标题?

    我使用 matplotlib 通过复制背景和位块传输来制作绘图动画 f Figure tight layout True canvas FigureCanvasTkAgg f master pframe canvas get tk widg
  • django admin TinyMCE 集成

    这很奇怪 我已经安装并配置了 django tinymce 但它似乎不适用于 django admin 这适用于 Safari class ArticleAdmin admin ModelAdmin formfield overrides
  • 如何最好地开发 Google Sheets 脚本和 Git 版本控制

    我是开发 Google Sheets 脚本的新手 我有从 krlaframboise SmartThings 分叉的代码 想要添加一些内容并将其提交到我的 Github 分叉中 显然我可以在工作表脚本编辑器中进行编辑并将它们粘贴回我的 gi
  • 如何从 Maven 获得对版本组中所有工件的依赖?

    我是 Maven 新手 我第一次尝试构建一个项目 我想写一些依赖于apache lucene的代码 这是一个Maven 中的工件列表 http mvnrepository com artifact org apache lucene我想要得
  • FFmpeg - 如何高精度修剪?

    我对 FFmpeg 修剪视频的方式非常困惑 所以如果有人能帮助我 我将非常感激 基本上 我想做的是 我有一个视频序列 我希望它在某一秒停止 将图像冻结几秒钟 如暂停 然后从同一帧再次再现 我可以说我正在处理三个视频 A mp4 视频序列的第
  • NSArray 的大小

    当我尝试检查声明为没有任何容量的 NSArray 的大小时 我发现它是 4 现在的问题是为什么它总是 4 请帮我找到它 谢谢 如果你说的是sizeof it is not找出 NSArray 持有多少数据的正确方法 Objective C
  • Jwt 具有多个模型

    我使用 Laravel 5 2 框架和 jwt 进行授权jwt 仅使用一种模型获取用户信息表单令牌 现在我如何在多个模型上使用 jwt 解析用户令牌 例如 当我在 api jwt 中使用客户令牌从客户模型解析该令牌时 默认防护应该是客户 a
  • 如何在 Windows 上安装 NUnit 3 控制台并运行测试?

    我想从这样的控制台运行测试 在任何目录中 DLL 文件可以针对不同的 NET 版本 nunit3 console test dll 我用谷歌搜索了很多 但找不到如何设置它 官方教程没什么用处 完全是零 跟随它让我无处可去 https git
  • 在 Framework 3.5 中使用服务器标记 <%= %> 设置 Visible 属性

    我一直在 NET Framework 4 项目中使用 等服务器标记来设置 runat server 控件的可见性 如下所示 div Content div 这适用于框架 4 但现在尝试在框架 3 5 项目上使用它 它似乎不起作用 这是 Fr
  • 悬停时显示材质复选框动画

    看看这个效果link https material components github io material components web catalog component checkbox悬停时显示复选框的圆形背景 我怎样才能在使用时
  • “找不到匹配的主机密钥类型” - Apache MINA SFTP 服务器

    我希望使用 Apache MINA 在 Java 中设置 SFTP 服务器 它似乎开始正常 但是当我尝试使用 OpenSSH 客户端连接到它时 我得到 ssh localhost p 2222 Unable to negotiate wit
  • 将服务器日志文件写入数据库是个好主意吗?

    看完之后O Reilly 发表的有关该主题的文章 http www onlamp com pub a apache 2005 02 10 database logs html 我想询问 Stack Overflow 他们对此事的看法 本地写
  • 如何在我的 Angular 指令 Bower 包中使用单独的模板?

    因此 我创建了一大堆指令 想要在许多项目中使用它们 因此我将其转换为 Bower 包并将其包含在我的一个项目中 不幸的是 这些指令不起作用 因为 templateUrl 路径不正确 templateUrls 基于与指令 js 位于同一目录中
  • 通过 JSch shell 通道向服务器发送命令

    我不知道如何通过 JSch shell 通道发送命令 我这样做 但它不起作用 JSch shell new JSch String command cd home s src Session session shell getSession
  • Kubernetes 作业失败,没有日志,没有终止原因,没有事件

    我连夜在 Kubernetes 中运行了一个作业 当我早上检查时 它失败了 通常 我会检查 Pod 日志或事件以确定原因 但是 该 Pod 已被删除并且没有任何事件 kubectl describe job topics etl names
  • 如何在python中打印包含引号的字符串

    我想在 python 中打印引号 是否可以打印一个 用Python或任何其他语言 我试过print Here a b没有用 因为它给出了不适当的语法错误 a 3 b cd print 有以下几种方法 一起使用单引号和双引号 允许您以单引号开
  • 寻找数据帧值的范围

    我有 2 个数据框 gt access V1 V2 V3 1 chr10 136122 136533 2 chr10 179432 179769 3 chr10 182988 183371 4 chr10 224234 224489 5 c