如果我运行此代码:
sysuse auto, clear
tab rep78 foreign, nofreq row matcell(freqs)
matrix list freqs
很明显,该选项卡仅保存了每个单元格中的实际计数,而不是使用nofreq行选项计算和显示的频率。如何在矩阵中保存这些相对频率?我可以手动支持它们,但由于Stata已经计算过它们,应该有一种方法来保存它们。
也发布在Statalist。
答案 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。