У меня есть два фрейма данных одного и того же респондента, один из времени 1, а другой из времени 2. В каждой волне они выдвигали своих друзей, и я хочу знать:
1) сколько друзейноминировано во время 2, но не во время 1 (новые друзья)
2) сколько друзей назначено во время 1, но не во времени 2 (потерянные друзья)
Пример данных:
Time 1 DF
ID friend_1 friend_2 friend_3
1 4 12 7
2 8 6 7
3 9 NA NA
4 15 7 2
5 2 20 7
6 19 13 9
7 12 20 8
8 3 17 10
9 1 15 19
10 2 16 11
Time 2 DF
ID friend_1 friend_2 friend_3
1 4 12 3
2 8 6 14
3 9 NA NA
4 15 7 2
5 1 17 9
6 9 19 NA
7 NA NA NA
8 7 1 16
9 NA 10 12
10 7 11 9
Таким образом, требуемый DF будет включать эти столбцы (EDIT заполняется в столбцах):
ID num_newfriends num_lostfriends
1 1 1
2 1 1
3 0 0
4 0 0
5 3 3
6 0 1
7 0 3
8 3 3
9 2 3
10 2 1
EDIT2:
Я пытался сделать анти-объединение
df3 <- anti_join(df1, df2)
Но этот метод не учитывает номера идентификаторов друзей, которые могут появиться в другом столбце во времени 2 (например, респондент № 6, друг 9 и 19, находятся в T1 и T2, но в разных столбцах каждый раз)