首页 > 解决方案 > 如何检查一个数据框中的值是否介于另一个数据框中的两个值之间?

问题描述

我有两个 csv 文件。其中一个包含每行两个断点位置,以及它们相应的染色体编号以及这些断点来自的样本。另一个文件包含开始和结束位置以及样本名称和染色体编号。

一些断点位置位于另一个文件的开始和结束位置。我想看看是否有任何断点位置不属于任何这些开始和结束位置。染色体编号和样本名称必须匹配。

我想比较每个位置(pos1 和 pos2)

具有断点位置的文件示例

        sample chr1 pos1       chr2 pos2
   1    A01-28  1   59679925    1   204187341
   2    A01-28  1   17727050    21  39859974
   3    A01-28  1   40443937    2   179382940
  ...
5720    Z05-65  14  74930698    14  77657362
4999    Z05-65  8   54849551    11  87898249
5000    Z05-65  14  74928588    14  76065367

查看是否有任何不在这些开始值和结束值之间

具有开始和结束位置的文件示例

        sample chr  start    end
   1    A01-28  1   3218610  6198652
   2    A01-28  1   6198745  8625449
   3    A01-28  1   8630794  9666687
  ...
19491   Z05-65  X   142569607   151391630
19492   Z05-65  X   151393577   151394249
19493   Z05-65  X   151394464   154905589

并且染色体编号和样本名称必须匹配。

我已将每个文件读入数据帧。我不知道该怎么做。我在想一个 for 循环可能会永远持续下去,因为一个文件有 5000 多个条目,而另一个文件有 19000 多个条目。我对R不是很精通,我知道可能有某种聪明的方法可以做到这一点。

标签: rbioinformatics

解决方案


推荐阅读