提问人:rajvijay 提问时间:9/23/2014 最后编辑:Nick Coxrajvijay 更新时间:10/5/2021 访问量:9365
Stata tabstat change order/sort?
Stata tabstat change order/sort?
问:
我在 Stata 中使用,并使用 and 将其输出到 LaTeX。我有tabstat
estpost
esttab
tabstat
以按组显示统计信息。例如
tabstat assets, by(industry) missing statistics(count mean sd p25 p50 p75)
我的问题是,是否有办法(或其他 Stata 命令)显示按平均值排序的输出,以便那些具有更高均值的类别将位于顶部。默认情况下,Stata 按字母顺序显示我使用 .tabstat
industry
tabstat
答:
我会看看 SSC 上的包。您可以通过键入 Stata 来获取该包。特别是,我会查看 的帮助文件中的条目。其中包含一个完全符合您要求的示例。egenmore
ssc install egenmore
axis()
egenmore
评论
axis()
tabstat
没有提供这样的钩子,但有一种方法可以解决这样的问题,这种方法很通用且很容易理解。
您没有提供可重现的示例,因此我们需要一个:
. sysuse auto, clear
(1978 Automobile Data)
. gen Make = word(make, 1)
. tab Make if foreign
Make | Freq. Percent Cum.
------------+-----------------------------------
Audi | 2 9.09 9.09
BMW | 1 4.55 13.64
Datsun | 4 18.18 31.82
Fiat | 1 4.55 36.36
Honda | 2 9.09 45.45
Mazda | 1 4.55 50.00
Peugeot | 1 4.55 54.55
Renault | 1 4.55 59.09
Subaru | 1 4.55 63.64
Toyota | 3 13.64 77.27
VW | 4 18.18 95.45
Volvo | 1 4.55 100.00
------------+-----------------------------------
Total | 22 100.00
Make
这里就像你的变量:它是一个字符串变量,所以在表格中,Stata倾向于按字母(字母数字)顺序显示它。industry
解决方法有几个简单的步骤,有些是可选的。
计算要排序的变量。 在这里通常很有用。egen
. egen mean_mpg = mean(mpg), by(Make)
将这些值映射到具有不同整数值的变量。由于两个组可能具有相同的均值(或其他汇总统计量),因此请确保断开原始字符串变量的连接。
. egen group = group(mean_mpg Make)
创建此变量时,对于具有最低均值(或其他汇总统计量)的组,该变量的值为 1,对于下一个最低值的组,值为 2,依此类推。如果需要相反的顺序,如本题所示,请翻转分组变量。
. replace group = -group
(74 real changes made)
这个新变量存在一个问题:原始字符串变量的值(此处)无处可寻。 (从Stata Journal网站安装后)是这里的帮手。我们使用原始字符串变量的值作为新变量的值标签。(这个想法是,值标签成为整数变量佩戴的“掩码”。Make
labmask
search labmask
. labmask group, values(Make)
(可选)在新整数变量的变量标签上工作。
. label var group "Make"
现在,我们可以使用新变量的类别进行制表。
. tabstat mpg if foreign, s(mean) by(group) format(%2.1f)
Summary for variables: mpg
by categories of: group (Make)
group | mean
--------+----------
Subaru | 35.0
Mazda | 30.0
VW | 28.5
Honda | 26.5
Renault | 26.0
Datsun | 25.8
BMW | 25.0
Toyota | 22.3
Fiat | 21.0
Audi | 20.0
Volvo | 17.0
Peugeot | 14.0
--------+----------
Total | 24.8
-------------------
注意:其他策略有时更好或同样好。
如果你的数据到一个新的数据集,你可以随心所欲地使用它。
collapse
sort
graph bar
并且善于显示组的汇总统计,排序顺序可以直接调。graph dot
2021 年 10 月 3 日和 5 日更新:SSC 和 Stata Journal 的新帮助程序命令(参见 [论文 此处])将此处的示例压缩为:myaxis
tabstat
* set up data example
sysuse auto, clear
gen Make = word(make, 1)
* sort order variable and tabulation
myaxis Make2 = Make, sort(mean mpg) descending
tabstat mpg if foreign, s(mean) by(Make2) format(%2.1f)
评论
ORDER BY mean DESC
tabstat
是一个中等老旧的命令,当然,任何使用它的人都可能希望这更容易。但一种更现代的方法(事实上,古代的,作为和是某个年份的命令)是生成一个结果表作为简化的数据集,然后生成任何你想要的。2014年的答案必然没有提到框架(Stata 16)作为另一种方法。collapse
contract
sort
评论