R:精确rownames的子集data.frame

时间:2018-01-10 20:46:26

标签: r dataframe match

R具有部分匹配row.names的此功能。例如:

> d <- data.frame(a=1:2, row.names = c('1', '711'))
> d
    a
1   1
711 2

部分匹配:

> d['7',]
[1] 2

但如果我只需要完全匹配怎么办?所以我希望NA行不匹配。 我不想使用%in%运算符,因为它不保留顺序而不返回空行。

> d[rownames(d) %in% c('711', '9', '1'),]
[1] 1 2

1 个答案:

答案 0 :(得分:0)

使用match功能。

> d[match(c('711', '9', '1'), rownames(d)),]
[1]  2 NA  1

这正是我所需要的。