本文介绍了从边或圆弧列表到Stata中的簇的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个Stata数据集,它表示用户之间的连接,如下所示:
src_user linked_user
1 2
2 3
3 5
1 4
6 7
我想要这样的东西:
user cluster
1 1
2 1
3 1
4 1
5 1
6 2
7 2
whereisid user
的计算结果为真,并且我已将所有用户分组到不相交的集群中。我曾尝试将其视为一个reshape
问题,但没有太多成功。据我所知,用户编写的SNA命令似乎都不能实现这一点。
除了我极力避免的循环之外,使用Stata执行此操作的最有效方法是什么?
推荐答案
如果您reshape
将数据转换为长格式,您可以使用group_id
(来自ssc)来获得您想要的。
clear
input user1 user2
1 2
2 3
3 5
1 4
6 7
end
gen id = _n
reshape long user, i(id) j(n)
clonevar cluster = id
list, sepby(cluster)
group_id cluster, match(user)
bysort cluster user (id): keep if _n == 1
list, sepby(cluster)
这篇关于从边或圆弧列表到Stata中的簇的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!