按列值子集数据

时间:2018-08-22 15:52:18

标签: r loops

我有以下数据:“文件”

V1 V2
1 Gene1
2 Gene2
4 Gene3
5 Gene4
6 Gene5

我有一个要保留的基因列表:

Gene <- (Gene3, Gene4, Gene5)

我如何遍历这些基因,仅选择列表中的特定基因并保留行信息?

我尝试都无济于事:

test <- c()
for (i in Genes) {
 test <- File[(File[,2][i]),]
}

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

使用tidyverse可以将filter函数与%in%结合使用:

library(tidyverse)

df <- read.table(text = "
V1 V2
1 Gene1
                 2 Gene2
                 4 Gene3
                 5 Gene4
                 6 Gene5
                 ", header = TRUE)


Gene <- c("Gene3", "Gene4", "Gene5")

df %>% 
  filter(V2 %in% Gene)

#   V1    V2
#1  4 Gene3
#2  5 Gene4
#3  6 Gene5