在 Stata 中查找社交网络组件
Find social network components in Stata
[我从一个单独的 post 中复制了下面示例的一部分,并根据我的特定需要进行了更改]
pos_1 pos_2
2 4
2 5
1 2
3 9
4 2
9 3
上面读作person_2接person_4,...,person_4接person_2,person_9接至 person_3.
我想创建第三个分类 [编辑] 变量组件,它让我知道观察到的 link 是否是该网络中连接组件(子网)的一部分。在这种情况下,网络中有两个连通分量:
pos_1 pos_2 component
2 4 1
2 5 1
1 2 1
3 9 2
4 2 1
9 3 2
组件 1 中的所有节点都相互连接,但不连接到组件 2 中的节点,反之亦然。有没有办法在 Stata 中生成这个组件变量?我知道有替代程序可以执行此操作,但如果我可以将它集成到 Stata 中,我的代码会更加无缝。
如果您 reshape
数据为长格式,您可以使用 group_id
(来自 SSC)来获得您想要的:
clear
input pos_1 pos_2
2 4
2 5
1 2
3 9
4 2
9 3
end
gen id = _n
reshape long pos_, i(id) j(n)
clonevar comp = id
list, sepby(comp)
group_id comp, match(pos)
reshape wide pos_, i(id) j(n)
egen component = group(comp)
list
[我从一个单独的 post 中复制了下面示例的一部分,并根据我的特定需要进行了更改]
pos_1 pos_2
2 4
2 5
1 2
3 9
4 2
9 3
上面读作person_2接person_4,...,person_4接person_2,person_9接至 person_3.
我想创建第三个分类 [编辑] 变量组件,它让我知道观察到的 link 是否是该网络中连接组件(子网)的一部分。在这种情况下,网络中有两个连通分量:
pos_1 pos_2 component
2 4 1
2 5 1
1 2 1
3 9 2
4 2 1
9 3 2
组件 1 中的所有节点都相互连接,但不连接到组件 2 中的节点,反之亦然。有没有办法在 Stata 中生成这个组件变量?我知道有替代程序可以执行此操作,但如果我可以将它集成到 Stata 中,我的代码会更加无缝。
如果您 reshape
数据为长格式,您可以使用 group_id
(来自 SSC)来获得您想要的:
clear
input pos_1 pos_2
2 4
2 5
1 2
3 9
4 2
9 3
end
gen id = _n
reshape long pos_, i(id) j(n)
clonevar comp = id
list, sepby(comp)
group_id comp, match(pos)
reshape wide pos_, i(id) j(n)
egen component = group(comp)
list