Stata tabstat更改订单/排序?

时间:2014-09-23 00:56:43

标签: statistics latex output stata summary

我在Stata中使用tabstat,并使用estpostesttab将其输出发送到LaTeX。我有

tabstat

按组显示统计信息。例如,

tabstat assets, by(industry) missing statistics(count mean sd p25 p50 p75) 

我的问题是tabstat(或其他Stata命令)是否有办法显示按平均值排序的输出,以便那些具有更高平均值的类别将位于顶部。默认情况下,当我使用industry时,Stata会按字母顺序显示tabstat

2 个答案:

答案 0 :(得分:5)

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这里就像你的变量industry:它是一个字符串变量,因此在表格中,Stata会倾向于按字母(字母数字)顺序显示它。

解决方法有几个简单的步骤,一些是可选的。

计算要对其进行排序的变量。 egen在这里通常很有用。

 . egen mean_mpg = mean(mpg), by(Make)

将这些值映射到具有不同整数值的变量。由于两个组可能具有相同的均值(或其他汇总统计量),因此请确保断开原始字符串变量的关系。

 . egen group = group(mean_mpg Make)

创建此变量,使其具有值1,具有最低平均值(或其他汇总统计量),2表示下一个最低值,依此类推。如果需要相反的顺序,就像在这个问题中一样,翻转分组变量。

 . replace group = -group
 (74 real changes made)

这个新变量存在问题:原始字符串变量的值(此处为Make)无处可见。 labmask(在search labmask之后从 Stata Journal 网站安装)是这里的帮手。 我们使用原始字符串变量的值作为新变量的值标签。(想法是值标签成为整数变量所穿的“掩码”。)

 . 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 bargraph dot擅长在群组上显示摘要统计信息,并且可以直接调整排序顺序。

答案 1 :(得分:4)

我会查看SSC上的egenmore包。您可以通过键入Stata ssc install egenmore来获取该包。特别是,我会在axis()的帮助文件中查看egenmore的条目。这包含一个完全符合您要求的示例。