在Stata中创建邻接矩阵的有效方法?
我在Stata中有如下数据:在Stata中创建邻接矩阵的有效方法?,stata,adjacency-matrix,Stata,Adjacency Matrix,我在Stata中有如下数据: Cat#1 Cat#2 A X B X A Y C Z ... ... 我想创建一个邻接,稍后将其输出到Matlab进行进一步分析 以下是我建议的方法: Cat#1 Cat#2 A X B X A Y C Z ... ... 为Cat#2中的每个唯一元素创建一列(即,在上例中的列:X
Cat#1 Cat#2
A X
B X
A Y
C Z
... ...
我想创建一个邻接,稍后将其输出到Matlab进行进一步分析
以下是我建议的方法:
Cat#1 Cat#2
A X
B X
A Y
C Z
... ...
- 为Cat#2中的每个唯一元素创建一列(即,在上例中的列:X Y Z)
- 跨CAT#1折叠,以便每个唯一的CAT#1值仅对应一行(即,上例中的行:A B C)
- 替换X Y Z的每个列元素。。。如果“条目”>0,则按1
- 删除多余的内容,留下邻接(矩阵)数据集
谢谢 有几个Stata命令用于生成邻接矩阵
尝试在命令提示符下键入
findit netsis
或findit nwcommands
。建议演示一些编码尝试。第三个要点中的“进入”是什么意思还不清楚。在第一点上,您可以使用命令levels
获取包含所有唯一值的本地值。然后,通过本地的foreach
循环可以轻松创建新变量。请尝试重新格式化为宽格式。@AspenChen您可能想要levelsof
而不是levels
,这是一个从Stata 9开始就过时的命令(尽管它仍然有效)。@DimitriyV.Masterov谢谢<代码>级别它是。尽管现在正在重新思考这一点,但对每个独特组合的计数进行简单的折叠
,然后按照@NealFultz的建议将重塑为宽的结构将创建此结构。感谢您的评论。将尝试将数据重塑为宽格式。