作者:王美庭
Email: wangmeiting92@gmail.com
- 一、引言
- 二、命令的安装
- 三、语法与选项
- 四、实例
- 五、输出效果展示
写了好多类似的命令,突然发现这个分组描述性统计的tabstat
还没写,同时它也有着其他已写命令不具有的特点,于是索性就写了,好形成一个整体,就这样。
tabstat
在没有by
选项时,可以输出和sum
一样的效果,所以当tabstat2
没有by
选项时,可以输出和wmtsum
一样的效果。当然,这就引出了之所以形成本文的原因——加上by
选项,tabstat2
命令可以将分组描述性统计输出至 Stata 界面、Word 文件及 LaTeX 文件中(当然,该命令依然保留了可以不使用by
选项去形成与wmtsum
一样的结果的功能)。有人会说,前面不是有table2
命令了吗?不是的,差异是肯定有的——毕竟分区块与分组还是有区别的。有兴趣的读者可以运行一下帮助文件中的实例感受一下。
该命令,和已经推出的wmtsum
、wmttest
、wmtcorr
、wmtreg
、wmtmat
、table2
命令,都可以通过append
选项成为一个整体,将输出结果集中输出至一个 Word 或 LaTeX 文件中。
以上可以通过
append
选项形成一个整体的系列命令,在导出 LaTeX 表格时,统一采用的是三线表形式(booktabs)。
更多阅读:
- Stata 新命令:wmtsum——描述性统计表格的输出
- Stata 新命令:wmttest——分组 T 均值检验表格的输出
- Stata 新命令:wmtcorr——相关系数矩阵的输出
- Stata 新命令:wmtreg——回归结果的输出
- Stata 新命令:wmtmat——矩阵的输出
- Stata 新命令:table2——"table"命令结果的输出
tabstat2
及本人其他命令的代码都托管于 GitHub 上,读者可随时下载安装这些命令。
你可以通过系统自带的net
命令进行安装:
net install tabstat2, from("https://raw.githubusercontent.com/Meiting-Wang/tabstat2/master")
也可以通过github
外部命令进行安装(github
命令本身可以通过net install github, from("https://haghish.github.io/github/")
进行安装):
github install Meiting-Wang/tabstat2
命令语法:
tabstat2 varlist [if] [in] [weight] [using filename] [, options]
varlist
: 可输入一个或多个数值型变量weight
: 可以选择 aweight 或 fweight,默认为空。using
: 可以将结果输出至 Word( .rtf 文件)和 LaTeX( .tex 文件)
选项(options):
- 一般选项
by(varname)
: 可输入一个类别变量statistics(string)
:设定要报告的统计量,所以可以输入的统计量有:count mean sd min max range variance sum p1 p5 p10 p25 p50 p75 p90 p95 p99 iqr cv semean skewness kurtosis
。当然,我们还可以设置统计量的数值格式和标签,如mean(fmt(%9.3f) label(mean_label))
。listwise
:在计算统计量之前会先剔除所涉及变量中包含缺漏值的观测值nototal
:不报告总计部分title(string)
:设置表格标题replace
: 替换已存在的文件append
: 将输出内容附加在已存在的文件中eqlabels(strings)
: 自定义行方程名varlabels(matchlist)
: 自定义行变量名collabels(strings)
: 自定义列名varwidth(number)
: 自定义表格第一列的宽度modelwidth(numlist)
: 自定义表格第二列及之后列的宽度compress
: 压缩表格的行空白空间,以使表格更紧凑
- LaTeX 专有选项
alignment(string)
:设置 LaTeX 表格的列对齐格式,可输入math
或dot
,math
设置列格式为居中对齐的数学格式(自动添加宏包booktabs
和array
),dot
表示小数点对齐的数学格式(自动添加宏包booktabs
、array
和dcolumn
)。默认为math
page(string)
:可添加用户额外需要的宏包width(string)
:设置 LaTeX 中表格的宽度,如width(\textwidth)
表示设置表格宽度为版心宽度
- 以上其中的一些选项可以缩写,详情可以在安装完命令后
help tabstat2
sysuse auto.dta, clear
*--共同部分
tabstat2 price weight mpg rep78 //默认报告count mean sd min max
tabstat2 price weight mpg rep78, listwise //在计算统计量时会先提出所涉及变量包含缺漏值的观测值
tabstat2 price weight mpg rep78, s(count mean min max) //设定特定的统计量
tabstat2 price weight mpg rep78, s(count(label(n)) mean(fmt(2)) min(fmt(2)) max(fmt(2))) //为统计量设置标签以及数值格式
tabstat2 price weight mpg rep78, by(foreign) //分组报告描述性统计
tabstat2 price weight mpg rep78, by(foreign) nototal //不报告Total部分
tabstat2 price weight mpg rep78, by(foreign) eql(domestic foreign Total) //设置行方程名
tabstat2 price weight mpg rep78, by(foreign) varl(price price_plus mpg mpg_plus) //为变量设置标签
tabstat2 price weight mpg rep78, by(foreign) coll(col1 col2 col3 col4 col5) //为表格自定义列名
tabstat2 price weight mpg rep78, by(foreign) compress //压缩表格横向空格以使得表格更紧凑
tabstat2 price weight mpg rep78, by(foreign) compress varw(20) //自定义表格第一列的宽度
tabstat2 price weight mpg rep78, by(foreign) compress modelw(12) //自定义表格第二列及之后列的宽度
tabstat2 price weight mpg rep78, by(foreign) ti(This is a title) //设置表格标题
*--Word部分
tabstat2 price weight mpg rep78 using Myfile.rtf, replace by(foreign) //将结果导出至Word
*--LaTeX部分
tabstat2 price weight mpg rep78 using Myfile.tex, replace by(foreign) ti(This is a title) //将结果导出至LaTeX
tabstat2 price weight mpg rep78 using Myfile.tex, replace by(foreign) ti(This is a title) a(dot) //设置LaTeX表格列为小数点对齐(默认为数学模式居中对齐)
tabstat2 price weight mpg rep78 using Myfile.tex, replace by(foreign) ti(This is a title) page(amsmath) //为LaTeX添加额外的宏包
tabstat2 price weight mpg rep78 using Myfile.tex, replace by(foreign) ti(This is a title) width(\textwidth) //将LaTeX的表格宽度设为版心宽度
*-该命令结果可以用系统自带的tabstat命令进行验证
tabstat price weight mpg rep78, c(s) s(count mean sd min max)
tabstat price weight mpg rep78, by(foreign) c(s) s(count mean sd min max) long
- Stata
tabstat2 price weight mpg rep78, compress
------------------------------------------------------------
count mean sd min max
------------------------------------------------------------
price 74 6165.257 2949.496 3291 15906
weight 74 3019.459 777.1936 1760 4840
mpg 74 21.2973 5.785503 12 41
rep78 69 3.405797 .9899323 1 5
------------------------------------------------------------
tabstat2 price weight mpg rep78, compress s(count(label(n)) mean(fmt(2)) min(fmt(2)) max(fmt(2)))
--------------------------------------------------
n mean min max
--------------------------------------------------
price 74 6165.26 3291.00 15906.00
weight 74 3019.46 1760.00 4840.00
mpg 74 21.30 12.00 41.00
rep78 69 3.41 1.00 5.00
--------------------------------------------------
tabstat2 price weight mpg rep78, compress by(foreign) s(count(label(n)) mean(fmt(2)) min(fmt(2)) max(fmt(2)))
--------------------------------------------------
n mean min max
--------------------------------------------------
0
price 52 6072.42 3291.00 15906.00
weight 52 3317.12 1800.00 4840.00
mpg 52 19.83 12.00 34.00
rep78 48 3.02 1.00 5.00
--------------------------------------------------
1
price 22 6384.68 3748.00 12990.00
weight 22 2315.91 1760.00 3420.00
mpg 22 24.77 14.00 41.00
rep78 21 4.29 3.00 5.00
--------------------------------------------------
Total
price 74 6165.26 3291.00 15906.00
weight 74 3019.46 1760.00 4840.00
mpg 74 21.30 12.00 41.00
rep78 69 3.41 1.00 5.00
--------------------------------------------------
- Word
tabstat2 price weight mpg rep78 using Myfile.rtf, replace compress by(foreign) ti(This is a title)
- LaTeX
tabstat2 price weight mpg rep78 using Myfile.tex, replace by(foreign) compress ti(This is a title) a(math)
% 18 Aug 2020 10:27:33
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{table}[htbp]\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\caption{This is a title}
\begin{tabular}{l*{1}{*{5}{>{$}c<{$}}}}
\toprule
&\multicolumn{1}{c}{count}&\multicolumn{1}{c}{mean}&\multicolumn{1}{c}{sd}&\multicolumn{1}{c}{min}&\multicolumn{1}{c}{max}\\
\midrule
0 & & & & & \\
price & 52& 6072.423& 3097.104& 3291& 15906\\
weight & 52& 3317.115& 695.3637& 1800& 4840\\
mpg & 52& 19.82692& 4.743297& 12& 34\\
rep78 & 48& 3.020833& .837666& 1& 5\\
\midrule
1 & & & & & \\
price & 22& 6384.682& 2621.915& 3748& 12990\\
weight & 22& 2315.909& 433.0035& 1760& 3420\\
mpg & 22& 24.77273& 6.611187& 14& 41\\
rep78 & 21& 4.285714& .7171372& 3& 5\\
\midrule
Total & & & & & \\
price & 74& 6165.257& 2949.496& 3291& 15906\\
weight & 74& 3019.459& 777.1936& 1760& 4840\\
mpg & 74& 21.2973& 5.785503& 12& 41\\
rep78 & 69& 3.405797& .9899323& 1& 5\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
在将结果输出至 Word 或 LaTeX 时,Stata 界面上也会呈现对应的结果,以方便查看。