Stata中的输入输出表

时间:2017-02-24 17:43:43

标签: stata

我有一个数据集,显示公司 i 是否使用公司 j 的输入来生产某些商品。有两个变量:公司和供应商。这两个变量都是公司的唯一标识符。这是一个例子:

clear
input float(firm supplier)
1 2
2 3
4 5
end

是否有一种在Stata中生成输入输出矩阵的有效方法?更具体地说,我需要一个方阵,如果公司 i (行)由公司 j (列)提供,则在位置(i,j)显示1,并且0除此以外。对于上面的示例,该表应如下所示,其中行和列是公司ID,从1到5:

0 1 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 1
0 0 0 0 0

1 个答案:

答案 0 :(得分:1)

这是一个非常天真的算法,但它的工作原理。

clear
input float(firm supplier)
1 2
2 3
4 5
end

mat J = J(5,5,0) 

forval obs = 1/`=_N' { 
   local i = firm[`obs'] 
   local j = supplier[`obs'] 
   matrix J[`i', `j'] = 1 
} 

mat li J 

J[5,5]
    c1  c2  c3  c4  c5
r1   0   1   0   0   0
r2   0   0   1   0   0
r3   0   0   0   0   0
r4   0   0   0   0   1
r5   0   0   0   0   0