R语言:使用dplyr提取行、列(filter, select)

file.txt如下所示:

phe         rs1           rs2
9           AG            AA
6           GG            CA
4           GG            AA
  • 1、如果想提取rs1列中含有GG的行,则可以使用命令:
phe = read.table("file.txt",header=T,check.names=F)
phe1=phe %>% filter(phe[,2] %in% "GG")
head(phe1)
6           GG            CA
4           GG            AA

或者

phe = read.table("file.txt",header=T,check.names=F)
phe1=phe[which(phe$rs1 %in% "GG"),]
head(phe1)
6           GG            CA
4           GG            AA
  • 2、如果想提取rs1中包含A字符的行,则可以使用命令:
phe = read.table("file.txt",header=T,check.names=F)
phe1=dplyr::filter(phe, grepl('A', rs1))
head(phe1)
phe         rs1           rs2
9           AG            AA
  • 3、如果想提取rs1中包含A或者G字符的行,则可以使用命令:
phe = read.table("file.txt",header=T,check.names=F)
phe1=dplyr::filter(phe, grepl("A", rs1) | grepl("G", rs1))
head(phe1)
phe         rs1           rs2
9           AG            AA
6           GG            CA
4           GG            AA
  • 4、如果想提取rs1中不包含A和G字符的行,则可以使用命令:
phe = read.table("file.txt",header=T,check.names=F)
phe1=dplyr::filter(phe, !grepl("A", rs1) & !grepl("G", rs1))
head(phe1)
phe         rs1           rs2
  • 5、如果想提取列名为rs1的列,则可以使用命令:
phe = read.table("file.txt",header=T,check.names=F)
phe1=phe%>%dplyr::select("rs1") 
head(phe1)
rs1
AG
GG
GG 

或者:

phe = read.table("file.txt",header=T,check.names=F)
phe1=phe[,c("rs1")]
head(phe1)
rs1
AG
GG
GG 
  • 6、如果想提取rs1列中不含有GG的行,则可以使用命令:
phe = read.table("file.txt",header=T,check.names=F)
phe1=phe %>% filter(phe[,2] != "GG")
head(phe1)
9           AG            AA
posted @ 2021-09-13 10:21  橙子牛奶糖  阅读(15304)  评论(0编辑  收藏  举报