我目前正在处理包含染色体起始和结束位置的基因组数据。我想找出与另一个区域重叠的基因组区域,并将它们折叠成新的基因组区域。
虽然我可以通过GenomicRanges包识别哪些区域是重叠的,但它会返回到我需要过滤掉的数据。我想要的是删除列B中的数据不在列A中的行
data<- read.csv(textConnection(
"index,queryhits, subjecthits
1, 1, 530,
2, 2, 545,
3, 2, 799,
4, 2, 93,
5, 3, 415,
6, 4, 745,
7, 545,799,
8, 545,93,
9, 545,415,
10, 545,745,
"))
subjecthit列中的值不应在queryhit列中。例如,在行号2中,queryhit列in等于2,subjecthits列等于545。这意味着545与数字2组合在一起。
然而,queryhit中的值可以是545,所以我不想再计算ะ,为什么我要删除queryhits列中包含545值的行,预期输出是
index queryhits subjecthits
1 1 530
2 2 545
3 2 799
4 2 93
5 3 415
6 4 745
我的实际数据大约是20000行,所以我希望在queryhit和subjecthits列中都有一个唯一的数字。
感谢您的帮助或建议
发布于 2019-05-20 21:24:07
我们可以使用%in%
来创建一个逻辑索引,取反(!
)并子集'data‘的行
data[!data$index %in% data$queryhits,]
# index queryhits subjecthits
# 1 1 530 NA
# 2 2 545 NA
# 3 2 799 NA
# 4 2 93 NA
# 5 3 415 NA
# 6 4 745 NA
https://stackoverflow.com/questions/56221864
复制相似问题