我有两个数据集。一个称为结构域(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