如何在矩阵中的制表符双向后保存相对行或列频率?
How do I save the relative row or column frequencies after tab twoway in a matrix?
如果我运行这个代码:
sysuse auto, clear
tab rep78 foreign, nofreq row matcell(freqs)
matrix list freqs
很明显,选项卡只保存了每个单元格中的实际计数,而不是使用 nofreq 行选项计算和显示的频率。如何将这些相对频率保存在矩阵中?我可以手动取消它们,但由于 Stata 已经计算了它们,所以应该有办法保存它们。
也发布在 Statalist。
您可以在 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。
如果我运行这个代码:
sysuse auto, clear
tab rep78 foreign, nofreq row matcell(freqs)
matrix list freqs
很明显,选项卡只保存了每个单元格中的实际计数,而不是使用 nofreq 行选项计算和显示的频率。如何将这些相对频率保存在矩阵中?我可以手动取消它们,但由于 Stata 已经计算了它们,所以应该有办法保存它们。
也发布在 Statalist。
您可以在 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。