grep只与模式完全匹配

use*_*940 1 regex r

我想把与我的模式完全匹配的rownames grep toMatch.

toMatch <- c("I-A", "I-AA", "I-AAA")
dat[grep(toMatch, rownames(dat)), ]
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

 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
Run Code Online (Sandbox Code Playgroud)

Jer*_*myS 5

你想要grepl,因为它返回一个T/F字符串.grep/grepl只接受单个字符串作为输入,它不能采用向量,可以添加| (意思或)不同的事物之间的grep.

dat[grepl("I-A|I-AA|I-AAA", rownames(dat)), ]
Run Code Online (Sandbox Code Playgroud)

  • 我想你也可以将这种模式写成"IA {1,3}" (3认同)
  • 如果您没有像上面提到的Cath那样添加分号,那么您将匹配"I-ATA",这是不应该的.结合建议,`IA {1,3};`应该做的伎俩. (2认同)