如何从R中的组中获取特定记录

问题描述 投票:2回答:1

我有以下df

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,它具有来自第一个df的id和来自df的记录位置

pid  position
1    1
2    2
3    2

所以这意味着对于pid 1,必须选择1个记录,pid 2,2nd,pid 3,2nd等等......

所以我的输出应该是这样的

pid name plan type...
1   v    a    10
2   v    c    20
3   v    a    20...
r dplyr
1个回答
2
投票

我们可以做一个join然后filter

library(dplyr)
left_join(df1, df2) %>%
       group_by(pid) %>%
       filter(row_number() == position) %>%
       select(-position)
© www.soinside.com 2019 - 2024. All rights reserved.