比较不同数据集中的多列以查找范围 R 中的值



我有两个数据集。一个称为结构域(d),它是关于基因的一般信息和称为突变(m)的表。这两个表都有类似的名为 Gene.name 的列,我将使用它来查找。这两个数据集的列数或行数不同。

我想遍历文件突变中的所有数据,并检查在列 gene.name 中找到的数据是否也存在于文件域中。如果是这样,我希望它检查列突变中的数据是否在"开始"和"结束"列之间(它们可以等于开始或结束)。如果是,我想将其打印到带有合并列的新表中:Gene.Name、突变和域信息。如果它不存在,请忽略它。

所以这就是我到目前为止所拥有的:

d<-read.table("domains.txt")

d
Gene.name Domain Start  End
ABCF1   low_complexity_region   2   13
DKK1    low_complexity_region   25  39
ABCF1   AAA 328 532
F2  coiled_coil_region  499 558

m<-read.table("mutations.tx")

m
Gene.name   Mutation        
ABCF1   10      
DKK1    21      
ABCF1   335     
xyz 15      
F2  499     

newfile<-m[, list(new=findInterval(d(c(d$Start, d$End)),by'=Gene.Name']

我的代码不起作用,我正在阅读很多不同的问题/答案,我更加困惑。任何帮助都会很棒。

我希望我的最终数据看起来像这样:

Gene.name   Mutation    Domain  
DKK1    21  low_complexity_region   
ABCF1   335 AAA 
F2  499 coiled_coil_region  
合并

和子集应该可以让你到达那里(尽管我认为你的预期结果与你对你想要的描述不符):

result <- merge(d,m,by="Gene.name")
result[with(result,Mutation >= Start & Mutation <= End),]
#  Gene.name                Domain Start End Mutation
#1     ABCF1 low_complexity_region     2  13       10
#4     ABCF1                   AAA   328 532      335
#6        F2    coiled_coil_region   499 558      499

相关内容

  • 没有找到相关文章

最新更新