@Aniko 指出,查看我的问题的一种方法是,我需要找到图的连通分量,其中顶点称为组和变量group
,并nominated_group
表示这两个组之间的边。我的目标是创建一个parent_Group
索引连接组件的变量。或者正如我之前所说:
我有一个包含四个变量的数据框:ID
、group
、 和nominated_ID
、 和nominated_Group
。
考虑姊妹组:如果数据中至少有一个案例 group==A 且指定组==B,则 A 组和 B 组是姊妹组,反之亦然。
我想创建一个变量parent_group
,它对每组姐妹组都具有唯一值。换句话说,不同parent_group
s的案件之间不应出现提名。制作parent_group
序列号似乎是个好主意。
非常感谢我在这里收到的帮助!我不能在这里真正做出贡献,但请注意,我尝试在 stats.exchange 和 wikipedia 上支付它。
在我的假数据中,A 和 B 是姐妹组。无论是 ID=4 还是 ID=5 都足以证明这一点。每个小组也是他们自己的姐妹小组。的目标,即 的创建parent_group
,应该parent_group
为 A 或 B 中的所有案例产生一个,而parent_group
对于 C 组的另一个案例
df <- data.frame(ID = c(9, 5, 2, 4, 3, 7),
group = c("A", "A", "B", "B", "A", "C"),
nominated_ID = c(9, 8, 4, 9, 2, 7) )
df$nominated_group <- with(df, group[match(nominated_ID, ID)])
df
ID group nominated_ID nominated_group
1 9 A 9 A
2 5 A 8 <NA>
3 2 B 4 B
4 4 B 9 A
5 3 A 2 B
6 7 C 7 C