如何设定Stata中数字的显示格式

作者:羊洋(西北师范大学)
邮箱:[email protected]

引言

在应用Stata的过程中,我们经常会遇到一些数字显示格式的问题,比如在估计结果中出现科学计数法使得结果不够直观,有一些投稿图要求图中的数字必须保留一位小数等。这些虽然都是小问题,但有时却让人很抓狂。其实这些格式问题,都可以通过代码进行控制,本文就从显示格式的代码组成入手,对这一问题进行梳理。

Stata中控制数据显示格式的代码形如%7.2f,它由以下元素组成:首先输入%,表明开始设定格式。接着可以选择性输入负号"-"和数字"0",负号表示数据靠左列式,输入的数字0则会保留在开头。然后依次输入数字、"."和数字,数字表示显示格式的宽度,数字表示小数点后保留的小数位数。再然后输入字母或或,用于标记具体格式,表示结果用科学计数法表示,表示固定格式,表示通用设定,即Stata会自动设定显示格式。最后,可以选择性的输入字母,将数据设置成有逗号的西方计数方法(多用于表示价格),即小数点之前每三位打一个逗号。

接下来我们先结合display命令用一些例子具体说明上述含义,再进一步说明如何设置变量、估计结果和图片中数字的显示格式。

1 -display-命令结果显示

使用display命令列式结果时,在数据或数学表达式之前添加所要设定的格式类型,就能显示想要的数字格式。比如有原始数据,我们对该数据做一些显示格式的设定,结果如下:

. dis  %7.2f  1000.12345
1000.12

. dis  %9.2e  1000.12345
1.00e+03

. dis  %8.2fc  1000.12345
1,000.12

可见,%7.2f设定了显示结果只保留两位小数;%9.2e将结果用科学计数法表示,并保留两位小数(值得说明的是,科学计数法中宽度的设置格式比较特殊,显示宽度要大于或等于小数位数+7,即小数位数为2时宽度应至少为9,详情请见help format);%8.2fc在第一个结果的基础上采用西方计数方法。值得说明的是,当采用西方计数方法时,由于显示结果中多了一个逗号,因此要增加结果显示的宽度,即宽度从7变为8。

2 变量的显示格式

对于数值型的变量,可以直接用format命令定义显示格式,在format命令后添加需要改变显示格式的变量名称,在加上具体的显示设定(如%6.3f)。用Stata提供的汽车价格数据进行举例:

. sysuse auto.dta, clear
. list price gear in 1/3
     +------------------+
     | price   gear_r~o |
     |------------------|
  1. | 4,099       3.58 |
  2. | 4,749       2.53 |
  3. | 3,799       3.08 |
     +------------------+
. format price %7.1fc   / /保留一位小数,并保留价格中的逗号
. format gear %6.3f     / /保留三位小数
. list price gear in 1/3
     +--------------------+
     |   price   gear_r~o |
     |--------------------|
  1. | 4,099.0      3.580 |
  2. | 4,749.0      2.530 |
  3. | 3,799.0      3.080 |
     +--------------------+

在回归分析之前,通常需要对变量进行描述性统计,在描述性统计时,也会面临显示格式的问题。我们选择一些变量列出它们的描述性统计,并设定显示类型为保留两位小数。在命令tabstat的选项里加入f(%9.2f)即可进行控制。

. tabstat price mpg rep78 length turn foreign, ///
>         stats(n mean sd min max) c(s) f(%9.2f)

    variable |         N      mean        sd       min       max
-------------+--------------------------------------------------
       price |     74.00   6165.26   2949.50   3291.00  15906.00
         mpg |     74.00     21.30      5.79     12.00     41.00
       rep78 |     69.00      3.41      0.99      1.00      5.00
      length |     74.00    187.93     22.27    142.00    233.00
        turn |     74.00     39.65      4.40     31.00     51.00
     foreign |     74.00      0.30      0.46      0.00      1.00
----------------------------------------------------------------

3 估计结果的显示格式

通常在估计完一个模型后,我们会将估计的结果储存起来,以便同其它估计结果一起输出比较。在输出估计结果时,主要涉及到估计系数和标准误(或t值、p值)的显示问题。比如当估计系数较大时,Stata有时会将系数用科学计数法显示,这对于我们比较不同模型的系数大小时存在不够直观的缺点,这时就需要我们对结果的显示格式进行设定。

还是利用汽车价格的数据进行说明,先做了两个对汽车价格的回归模型,再用esttab命令输出估计结果,该命令可以分别对估计系数和标准误进行格式设定,比较方便。在命令的选项中加入b()就能设定系数的显示格式,加入se()设定标准误的格式,括号中填写想要设定的具体格式。进一步,有时模型的F统计量过大,也可能会用科学计数法列式,因此可以添加sfmt()选项控制输出的单值的格式。

. qui reg price mpg
. est store reg1
. qui reg price mpg rep78
. est store reg2
* 输出估计结果
. esttab reg1 reg2, b(%9.2f) se(%7.2f) sfmt(%7.3f) / / /
>         star(* 0.1 ** 0.05 *** 0.01) mtitle(reg1 reg2) / / /
>         scalar(r2 r2_a N F) compress nogap

------------------------------------
                 (1)          (2)   
                reg1         reg2   
------------------------------------
mpg          -238.89***   -271.64***
             (53.08)      (57.77)   
rep78                      666.96*  
                         (342.36)   
_cons       11253.06***   9657.75***
           (1170.81)    (1346.54)   
------------------------------------
N                 74           69   
r2             0.220        0.251   
r2_a           0.209        0.228   
F             20.258       11.057   
------------------------------------
Standard errors in parentheses
* p<0.1, ** p<0.05, *** p<0.01

4 图片中数字的显示格式

之前在论文投稿时,杂志社要求图片中的数要保留一位小数,在网上查了一些资料才完成设定。还是以刚才的数据为例,画出汽车价格对里程数的散点图,并附加拟合线。要想设置图片中的数字都保留一位小数,其实只要在对应的ylabelxlabel的子选项中添加format()表明特定格式,代码和结果如下:

#delimit ;
twoway (scatter price mpg) (lfit price mpg)
    ,
    ylabel(, format(%9.1f) angle(0) nogrid)
    xlabel(, format(%3.1f))
;
#delimit cr
设置图片中的数字保留一位小数显示

总结

只要了解了Stata中控制数据显示格式的代码(如%7.2f),改变数据的显示格式就不困难。在各个情境下,基本都可以通过添加选项的方法来进行控制,不同的是各个命令添加显示格式选项的位置有差异,不过大多可以通过查阅命令对应的help文件来获取选项添加的位置。

你可能感兴趣的:(如何设定Stata中数字的显示格式)