Skip to content

[W-10] Output the results of the table command to Stata interface, Word and LaTeX

Notifications You must be signed in to change notification settings

Meiting-Wang/table2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stata 新命令:table2——"table"命令结果的输出

作者:王美庭
Email: wangmeiting92@gmail.com

目录

  • 一、引言
  • 二、命令的安装
  • 三、语法与选项
  • 四、实例
  • 五、输出效果展示

一、引言

在处理数据时,需要将table命令的结果导出,但始终无法找到对应的选项,于是便自己动手写了这个命令。不过这个命令是基于tabstatesttab编写的,所以与原生的命令有些许不同,不过大同小异。

本文介绍的table2命令,可以将分区描述性统计结果输出至 Stata 界面、Word 的 .rtf 文件和 LaTeX 的.tex 文件。有人可能会说,不是已经有了wmtsum了吗?不是的,wmtsum不能处理分区的情况。

该命令,和已经推出的wmtsumwmttestwmtcorrwmtregwmtmat命令,都可以通过append选项成为一个整体,将输出结果集中输出至一个 Word 或 LaTeX 文件中。

更多阅读:

二、命令的安装

table2命令以及本人其他命令的代码都托管于 GitHub 上,读者可随时下载安装这些命令。

table2由于用到了自己编写的wmtstrspace_rmmat_cagn程序,所以有以下可选安装方式。

(1)如果你没有wmtstrspace_rmmat_cagn程序,则你需要使用github外部命令进行安装(github命令本身可以通过net install github, from("https://haghish.github.io/github/")进行安装):

github install Meiting-Wang/table2

以上语句会自动额外帮助你安装最新版的wmtstrspace_rmmat_cagn程序。

(2)如果你已经有了wmtstrspace_rmmat_cagn程序,则你可以通过系统自带的net命令进行安装以节约安装时间:

net install table2, from("https://raw.githubusercontent.com/Meiting-Wang/table2/master")

三、语法与选项

命令语法

table2 varlist [if] [in] [weight] [using filename] [, options]
  • varlist: 可输入一个或两个类别变量
  • weight: 可以选择 fweight 或 aweight,默认为空。
  • using: 可以将结果输出至 Word( .rtf 文件)和 LaTeX( .tex 文件)

选项(options)

  • 一般选项
    • contents(string):填写类似n mean(price) sd(price) mean(mpg)的语句,括号内为变量,括号外为统计量。所有可以输入的统计量有:n mean sd min max range variance sum p1 p5 p10 p25 p50 p75 p90 p95 p99 cv skewness kurtosis。这些统计量的含义可以在help tabstat中查看。
    • format(fmtlist):设定contents中对应统计量的数值格式
    • row:额外报告行总计
    • column:额外报告列总计
    • listwise:在计算统计量之前会先剔除所涉及变量中包含缺漏值的观测值
    • title(string):设置表格标题
    • replace: 替换已存在的文件
    • append: 将输出内容附加在已存在的文件中
    • eqlabels(strings): 自定义行方程名
    • varlabels(matchlist): 自定义行变量名
    • collabels(strings): 自定义列名
    • varwidth(number): 自定义表格第一列的宽度
    • modelwidth(numlist): 自定义表格第二列及之后列的宽度
    • compress: 压缩表格的行空白空间,以使表格更紧凑
  • LaTeX 专有选项
    • alignment(string):设置 LaTeX 表格的列对齐格式,可输入mathdotmath设置列格式为居中对齐的数学格式(自动添加宏包booktabsarray),dot表示小数点对齐的数学格式(自动添加宏包booktabsarraydcolumn)。默认为math
    • page(string):可添加用户额外需要的宏包
    • width(string):设置 LaTeX 中表格的宽度,如width(\textwidth)表示设置表格宽度为版心宽度
  • 以上其中的一些选项可以缩写,详情可以在安装完命令后help table2

四、实例

*共同部分
sysuse auto.dta, clear
table2 foreign, c(n) //分组计数
table2 foreign, c(n mean(price) sd(price) mean(trunk) sd(trunk)) //分组计算统计量
table2 foreign, c(n mean(price) sd(price) mean(trunk) sd(trunk)) row //额外报告行方向总体上计算的统计量
table2 foreign, c(n mean(price) sd(price) mean(trunk) sd(trunk)) row list //计算统计量时不会考虑包含缺漏值的观测值

table2 foreign rep78, c(n) //分组计数
table2 foreign rep78, c(n mean(price) sd(price) mean(trunk) sd(trunk)) //分组计算统计量
table2 foreign rep78, c(n mean(price) sd(price) mean(trunk) sd(trunk)) row //额外报告行方向总体上计算的统计量
table2 foreign rep78, c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col //额外报告列方向总体上计算的统计量
table2 foreign rep78, c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col list //计算统计量时不会考虑包含缺漏值的观测值

table2 foreign rep78 , c(n mean(price) sd(price) mean(trunk) sd(trunk)) f(0 2 2 2 2) row col //设置数值格式
table2 foreign rep78 , c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col eql(domestic foreign Total) //自定义报告的行方程名
table2 foreign rep78 , c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col varl(mean(price) price_m sd(price) price_sd mean(trunk) trunk_m sd(trunk) trunk_sd) //自定义行名
table2 foreign rep78 , c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col coll("very bad" bad general good "very good" Total) //自定义列名
table2 foreign rep78 , c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col compress //将表格压缩展示
table2 foreign rep78 , c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col varw(11) //自定义第一列的宽度(空格数)
table2 foreign rep78 , c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col compress varw(12) modelw(10) //将第二列及之后列的宽度设定为10个空格
table2 foreign rep78 , c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col compress varw(12) modelw(10 15 20 20 20 20) //为第二列及之后列分别自定义宽度
table2 foreign rep78 , c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col ti(This is a title) //自定义表格标题

*Word部分
table2 foreign rep78 using Myfile.rtf, replace c(n mean(price) sd(price) mean(trunk) sd(trunk)) f(0 2 2 2 2) row col ti(This is a title)  //将结果输出至Word

*LaTeX部分
table2 foreign rep78 using Myfile.tex, replace c(n mean(price) sd(price) mean(trunk) sd(trunk)) f(0 2 2 2 2) row col ti(This is a title) //将结果输出至LaTeX
table2 foreign rep78 using Myfile.tex, replace c(n mean(price) sd(price) mean(trunk) sd(trunk)) f(0 2 2 2 2) row col ti(This is a title) a(math) //设置列格式为数学格式(也为默认列格式)
table2 foreign rep78 using Myfile.tex, replace c(n mean(price) sd(price) mean(trunk) sd(trunk)) f(0 2 2 2 2) row col ti(This is a title) a(dot) //设置列格式为小数点对齐
table2 foreign rep78 using Myfile.tex, replace c(n mean(price) sd(price) mean(trunk) sd(trunk)) f(0 2 2 2 2) row col ti(This is a title) page(amsmath) //引入额外的宏包(无论怎么样都会引入array和booktabs宏包)
table2 foreign rep78 using Myfile.tex, replace c(n mean(price) sd(price) mean(trunk) sd(trunk)) f(0 2 2 2 2) row col ti(This is a title) width(\textwidth) //设置表格宽度为版心宽度

*该命令结果可以用系统自带的 table 命令进行验证
table foreign, c(freq)
table foreign, c(freq mean price sd price mean trunk sd trunk)
table foreign, c(freq mean price sd price mean trunk sd trunk) row

table foreign rep78, c(freq)
table foreign rep78, c(freq mean price sd price mean trunk sd trunk)
table foreign rep78, c(freq mean price sd price mean trunk sd trunk) row
table foreign rep78, c(freq mean price sd price mean trunk sd trunk) row col

以上所有与table2相关的实例都可以在help table2中直接运行。
image

五、输出效果展示

  • Stata
table2 foreign, c(n mean(price) sd(price) mean(trunk) sd(trunk)) row
-----------------------------------------------------------------------------
                        n  mean(price)    sd(price)  mean(trunk)    sd(trunk)
-----------------------------------------------------------------------------
0                      52     6072.423     3097.104        14.75     4.306288
1                      22     6384.682     2621.915     11.40909     3.216906
Total                  74     6165.257     2949.496     13.75676     4.277404
-----------------------------------------------------------------------------
table2 foreign rep78, c(n mean(price) sd(price) mean(trunk) sd(trunk)) row col
------------------------------------------------------------------------------------------
                        1            2            3            4            5        Total
------------------------------------------------------------------------------------------
0                                                                                         
n                       2            8           27            9            2           48
mean(price)        4564.5     5967.625     6607.074     5881.556       4204.5      6179.25
sd(price)        522.5519     3579.357     3661.267     1592.019     311.8341     3188.969
mean(trunk)           8.5       14.625     15.59259     16.66667          9.5     15.08333
sd(trunk)         2.12132     4.983903     3.532914      4.66369      2.12132     4.281744
------------------------------------------------------------------------------------------
1                                                                                         
n                       0            0            3            9            9           21
mean(price)             .            .     4828.667     6261.444     6292.667     6070.143
sd(price)               .            .     1285.613     1896.092     2765.629     2220.984
mean(trunk)             .            .     12.33333     10.33333     11.88889     11.28571
sd(trunk)               .            .      3.21455     3.840573     2.666667     3.242574
------------------------------------------------------------------------------------------
Total                                                                                     
n                       2            8           30           18           11           69
mean(price)        4564.5     5967.625     6429.233       6071.5         5913     6146.043
sd(price)        522.5519     3579.357      3525.14     1709.608     2615.763      2912.44
mean(trunk)           8.5       14.625     15.26667         13.5     11.45455     13.92754
sd(trunk)         2.12132     4.983903     3.590537     5.272013      2.65946     4.343077
------------------------------------------------------------------------------------------
  • Word
table2 foreign rep78 using Myfile.rtf, replace c(n mean(price) sd(price) mean(trunk) sd(trunk)) f(0 2 2 2 2) row col ti(This is a title)

table2-Word

  • LaTeX
table2 foreign rep78 using Myfile.tex, replace c(n mean(price) sd(price) mean(trunk) sd(trunk)) f(0 2 2 2 2) row col ti(This is a title) a(math)
% 16 Aug 2020 22:17:09
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\begin{document}

\begin{table}[htbp]\centering
\caption{This is a title}
\begin{tabular}{l*{6}{>{$}c<{$}}}
\toprule
            &\multicolumn{1}{c}{1}&\multicolumn{1}{c}{2}&\multicolumn{1}{c}{3}&\multicolumn{1}{c}{4}&\multicolumn{1}{c}{5}&\multicolumn{1}{c}{Total}\\
\midrule
0           &            &            &            &            &            &            \\
n           &           2&           8&          27&           9&           2&          48\\
mean(price) &     4564.50&     5967.63&     6607.07&     5881.56&     4204.50&     6179.25\\
sd(price)   &      522.55&     3579.36&     3661.27&     1592.02&      311.83&     3188.97\\
mean(trunk) &        8.50&       14.63&       15.59&       16.67&        9.50&       15.08\\
sd(trunk)   &        2.12&        4.98&        3.53&        4.66&        2.12&        4.28\\
\midrule
1           &            &            &            &            &            &            \\
n           &           0&           0&           3&           9&           9&          21\\
mean(price) &           .&           .&     4828.67&     6261.44&     6292.67&     6070.14\\
sd(price)   &           .&           .&     1285.61&     1896.09&     2765.63&     2220.98\\
mean(trunk) &           .&           .&       12.33&       10.33&       11.89&       11.29\\
sd(trunk)   &           .&           .&        3.21&        3.84&        2.67&        3.24\\
\midrule
Total       &            &            &            &            &            &            \\
n           &           2&           8&          30&          18&          11&          69\\
mean(price) &     4564.50&     5967.63&     6429.23&     6071.50&     5913.00&     6146.04\\
sd(price)   &      522.55&     3579.36&     3525.14&     1709.61&     2615.76&     2912.44\\
mean(trunk) &        8.50&       14.63&       15.27&       13.50&       11.45&       13.93\\
sd(trunk)   &        2.12&        4.98&        3.59&        5.27&        2.66&        4.34\\
\bottomrule
\end{tabular}
\end{table}

\end{document}

table2-LaTeX

在将结果输出至 Word 或 LaTeX 时,Stata 界面上也会呈现对应的结果,以方便查看。

About

[W-10] Output the results of the table command to Stata interface, Word and LaTeX

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published