如何在矩阵中选项卡twoway之后保存相对行或列频率?

时间:2015-04-23 21:20:07

标签: stata

如果我运行此代码:

sysuse auto, clear
tab rep78 foreign, nofreq row matcell(freqs)
matrix list freqs

很明显,该选项卡仅保存了每个单元格中的实际计数,而不是使用nofreq行选项计算和显示的频率。如何在矩阵中保存这些相对频率?我可以手动支持它们,但由于Stata已经计算过它们,应该有一种方法来保存它们。

也发布在Statalist

1 个答案:

答案 0 :(得分:1)

你可以在Stata中操纵矩阵,但是Mata为此目的更丰富。它可以使用计算器风格。

. sysuse auto, clear
(1978 Automobile Data)

. tab rep78 foreign, nofreq row matcell(freqs)

    Repair |
    Record |       Car type
      1978 |  Domestic    Foreign |     Total
-----------+----------------------+----------
         1 |    100.00       0.00 |    100.00 
         2 |    100.00       0.00 |    100.00 
         3 |     90.00      10.00 |    100.00 
         4 |     50.00      50.00 |    100.00 
         5 |     18.18      81.82 |    100.00 
-----------+----------------------+----------
     Total |     69.57      30.43 |    100.00 


. matrix list freqs

freqs[5,2]
    c1  c2
r1   2   0
r2   8   0
r3  27   3
r4   9   9
r5   2   9

. mata 

: freqs = st_matrix("freqs")
: freqs :/ rowsum(freqs)
: freqs :/ colsum(freqs)

你可以自然地将这些矩阵中的任何一个推回到Stata。