获取dplyr中每个dyad的目标数据

时间:2019-11-05 21:45:55

标签: r dplyr

我有一张桌子,人们在一个小组中选择他们的伙伴。 看起来像这样:

df<- data.frame(group=c(1,1,1,2,2,2),
                income=c(100,200,300,400,500,600),
                chosen_group_member=c(2,3,1,3,1,2))

df

输出:

  group income chosen_group_member
1     1    100                   2
2     1    200                   3
3     1    300                   1
4     2    400                   3
5     2    500                   1
6     2    600                   2

对于每个成员,我需要找到其伙伴的收入作为target_income变量:

  group income chosen_group_member target_income
1     1    100                   2           200
2     1    200                   3           300
3     1    300                   1           100
4     2    400                   3           600
5     2    500                   1           400
6     2    600                   2           500

用dplyr在R中有什么办法吗? 现在,我只有一个想法可以遍历每个组,并让每个组中的每个成员遍历所有成员以查找其收入,这肯定是错误的方式。

1 个答案:

答案 0 :(得分:3)

df %>%
    group_by(group) %>%
    mutate(target = income[chosen_group_member]) %>%
    ungroup()