【发布时间】:2015-05-21 17:56:35
【问题描述】:
我有一个这样的数据框dat
P pedigree cas
1 M rs2745406 T
2 M rs6939431 A
3 M SNP_DPB1_33156641 G
4 M SNP_DPB1_33156664_G P
5 M SNP_DPB1_33156664_A A
6 M SNP_DPB1_33156664_T A
我想排除 pedigree 列以 SNP_ 开头并以 G、C、T 或 A (_[GCTA]) 结尾的所有行。在这种情况下,这将是第 4、5、6 行。
如何在 R 中实现这一点?我试过了
multisnp <- which(grepl("^SNP_*_[GCTA]$", dat$pedigree)=="TRUE")
new_dat <- dat[-multisnp,]
我的multisnp 向量是空的,但我不知道如何修复它以匹配我想要的模式。我认为这是我的通配符 * 用法错误。
【问题讨论】:
-
这应该可以完成工作:
dat2 <- dat[!grepl("^SNP_\\.*_[GCAT]$", dat$pedigree), perl = T]。