получить целевые данные для каждой пары в dplyr - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть таблица, в которой люди выбирают своих партнеров по группе. Это выглядит так:

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

Есть ли способ сделать это в R с помощью dplyr? Прямо сейчас у меня есть только идея циклически проходить через каждую группу, и каждый член в каждой группе должен проходить через всех участников, чтобы искать их доходы, что, безусловно, является неправильным способом.

1 Ответ

3 голосов
/ 06 ноября 2019
df %>%
    group_by(group) %>%
    mutate(target = income[chosen_group_member]) %>%
    ungroup()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...