2015-04-17 61 views
0

假設我有從矩陣拉起匹配行以下:使用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' ,我想拉所有標識的行4,然後ID 4一遍,然後再3 2 1然後

我可以使用做到以下幾點:

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

有沒有更合適的方法使用dplyr或plyr辦呢?

回答

2

隨着dplyr

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