R 通过部分匹配行名称进行子集化

Hol*_*ion 3 regex r subset

我有一个制表符分隔的文件:

row.names c1 c2 c3
AF3 0 2 4
BN4 9 1 2 
AF2 8 7 1
BN8 4 6 8
Run Code Online (Sandbox Code Playgroud)

我只想选择行名称以 BN4 开头的行,输出如下:

row.names c1 c2 c3
BN4 9 1 2 
BN8 4 6 8
Run Code Online (Sandbox Code Playgroud)

如果我知道向量中的确切行名称,我知道如何解决问题......

df[row.names(df) %in% c('BN4','BN8'), ]
Run Code Online (Sandbox Code Playgroud)

但是我如何通过查找以“BN”开头的行并对其进行子集化来解决问题?

Mat*_*erg 5

您可以用来grep查找名称以“BN”开头的那些行。

使用xfor 对象代替df(df是 R 中的函数):

x[grep("^BN", row.names(x)),]
##     c1 c2 c3
## BN4  9  1  2
## BN8  4  6  8
Run Code Online (Sandbox Code Playgroud)