使用 dplyr 从矩阵中提取匹配行

pulling up matching rows from a matrix using dplyr

假设我有以下内容:

myDF <- cbind.data.frame("Id" = rep(1:5, each = 4), values = c(rnorm(4,0,1), rnorm(4, 10, 1), rnorm(4, 20,1 ), rnorm(4, 30,1), rnorm(4, 40,1)))

idVector <- sample(1:5, size =  5, replace = TRUE)

如果我的 `idVector = 4,4,3,2,1',我想拉取 ID 为 4 的所有行,然后再次拉取 Id 4,然后是 3,然后是 2,然后是 1。

我可以使用以下方法来完成:

do.call("rbind", lapply(idVector, function(x, currentDF){
currentDF[currentDF$Id == x,]}
, myDF))

是否有使用 dplyr 或 plyr 的更简洁的方法?

dplyr

library(dplyr)
left_join(data.frame(Id=idVector), myDF)