我有两个数据集。一个称为域(d),其作为关于基因和表的一般信息称为突变(m)。两个表都有类似的名为Gene.name的列,我将用它来查找。这两个数据集的列数或行数不同。
我想查看文件变异中的所有数据,并检查列中gene.name中的数据是否也存在于文件域中。如果是,我希望它检查列变异中的数据是否在“开始”和“结束”列之间(它们可以等于开始或结束)。如果是,我想将它打印到具有合并列的新表:Gene.Name,Mutation和域信息。如果它不存在,请忽略它。
所以这就是我到目前为止:
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 $完))中,由 '= Gene.Name']
我的代码无效,我正在阅读很多不同的问题/答案,而且我更加困惑。任何帮助都会很棒。
我希望我的最终数据看起来像这样:
Gene.name Mutation Domain
DKK1 21 low_complexity_region
ABCF1 335 AAA
F2 499 coiled_coil_region
答案 0 :(得分:2)
合并和子集可以帮助您(虽然我认为您的预期结果与您想要的描述不符):
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