2017-12-18 170 views
2

從一組獲得特定記錄我有以下的DF如何R中

pid name plan type... 
1 v a 10 
1 s a 20 
1 v b 10 
2 s c 20 
2 v c 10 
3 s a 10 
3 v a 20... 

和另一DF2,它具有的ID從第一DF和記錄位置從採取DF

pid position 
1 1 
2 2 
3 2 

因此,這意味着對於PID 1,1記錄已被選中,爲PID 2,2,對PID 3,第2和等等...

所以我的輸出應該像

pid name plan type... 
1 v a 10 
2 v c 20 
3 v a 20... 

回答

2

我們可以做一個join然後filter

library(dplyr) 
left_join(df1, df2) %>% 
     group_by(pid) %>% 
     filter(row_number() == position) %>% 
     select(-position)