1

我想创建一个 5×5 的tabulate twoway频率计数表网格,如下表所示。

在此处输入图像描述

使用嵌套循环很容易生成每个子表foreach,但是长列表输出比 5×5 网格更难以解释(并且具有冗余条目——它提供了对称矩阵的两半)。

是否可以在Stata中制作这样的表格?需要明确的是,我可以稍后弄清楚 LaTeX,我只是对获得清晰简洁的控制台输出感兴趣。

谢谢!这是一些使用auto数据进行基本操作的代码,但会生成列表而不是矩阵。xtile来自egenmore包装

sysuse auto, clear
global vars price mpg headroom trunk weight
foreach x of global vars {
    egen d_`x' = xtile(`x'), nquantiles(2)
}

* can make diagonal entries
tabulate d_price d_price

* can make off-diagonal entries
tabulate d_price d_mpg

* crude solution that generates list output with redundant entries
foreach x of global vars {
    foreach y of global vars {
        tabulate d_`x' d_`y'
    }
}
4

1 回答 1

3

我在你的循环中添加了一些矩阵运算。

tempname col all tabout
foreach x of global vars {
    foreach y of global vars {
        qui tabulate d_`x' d_`y', matcell(`tabout')
        mat colnames `tabout' = `x' `x'
        mat rownames `tabout' = `y' `y'
        mat `col' = (nullmat(`col') \ `tabout' )
    }
    mat `all'= (nullmat(`all') , `col')
    mat drop `col'
}
mat list `all'

它有点类似于我的名为 的程序meantab,位于http://code.google.com/p/kk-adofiles/

于 2012-01-09T13:23:34.407 回答