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

时间:2015-04-17 21:25:34

标签: r plyr 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有更简洁的方法吗?

1 个答案:

答案 0 :(得分:2)

使用dplyr

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