【发布时间】:2020-02-27 21:07:50
【问题描述】:
我有两个相同受访者的数据框,一个来自时间 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 将包括这些列(编辑填充列):
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 不同列中的朋友 ID 号(例如受访者#6 朋友 9 和 19 在 T1 和 T2 中,但在每次不同的列中)
【问题讨论】:
-
你能举一个输出的例子吗,例如对于 ID 1?
-
到目前为止你尝试过什么?
标签: r dplyr tidyverse data-manipulation network-analysis