我想将与我的模式toMatch
精确匹配的rownames grep。
toMatch <- c("I-A", "I-AA", "I-AAA")
dat[grep(toMatch, rownames(dat)), ]
DAT
hsa-miR-10b-5p_TACCCTGTAGAACCGAATTTGTAA_0;I-AA;0;g 3.939829e-01
hsa-miR-122-5p_TGGAGTGTGACAATGGTGTTTGATA_0;I-ATA;0;0 3.942306e-01
hsa-miR-122-5p_TGGAGTGTGGCAATGGTGTTTGAAA_10GA;I-AAA;0;0 3.948047e-01
出
hsa-miR-10b-5p_TACCCTGTAGAACCGAATTTGTAA_0;I-AA;0;g 3.939829e-01
hsa-miR-122-5p_TGGAGTGTGGCAATGGTGTTTGAAA_10GA;I-AAA;0;0 3.948047e-01
答案 0 :(得分:5)
你想要grepl,因为它返回一个T / F字符串。 grep / grepl只接受单个字符串作为输入,它不能采用向量,可以添加| (意思或)不同的事物之间的grep。
dat[grepl("I-A|I-AA|I-AAA", rownames(dat)), ]
答案 1 :(得分:2)
库stringr
适合处理字符串,
dat <- dat[str_detect(dat$V1, toMatch),]
dat
# V1 V2
#1 hsa-miR-10b-5p_TACCCTGTAGAACCGAATTTGTAA_0;I-AA;0;g 0.3939829
#3 hsa-miR-122-5p_TGGAGTGTGGCAATGGTGTTTGAAA_10GA;I-AAA;0;0 0.3948047