首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何删除之前在组中找到值的行

如何删除之前在组中找到值的行
EN

Stack Overflow用户
提问于 2019-05-20 21:21:45
回答 1查看 29关注 0票数 0

我目前正在处理包含染色体起始和结束位置的基因组数据。我想找出与另一个区域重叠的基因组区域,并将它们折叠成新的基因组区域。

虽然我可以通过GenomicRanges包识别哪些区域是重叠的,但它会返回到我需要过滤掉的数据。我想要的是删除列B中的数据不在列A中的行

代码语言:javascript
复制
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值的行,预期输出是

代码语言:javascript
复制
    index queryhits  subjecthits
     1 1    530
     2 2    545
     3 2    799
     4 2    93
     5 3    415
     6 4    745

我的实际数据大约是20000行,所以我希望在queryhit和subjecthits列中都有一个唯一的数字。

感谢您的帮助或建议

EN

回答 1

Stack Overflow用户

发布于 2019-05-20 21:24:07

我们可以使用%in%来创建一个逻辑索引,取反(!)并子集'data‘的行

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56221864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档