## 一步到位,两步见表!没错,两步!输出四张基本表格
### 1. 写在前面
描述性统计、相关系数矩阵、组建均值差异检验和回归结果四张常用表格如何快速输出?
四个热门外部命令:“ `sum2docx` "," `corr2docx` ","` t2docx` "和” `reg2docx` "帮你解决问题
其中:
sum2docx:将描述性统计量表直接输出到一个 docx 文件中;
corr2docx:将相关系数直接输入到一个 docx 文件中;
t2docx:将分组均值t检验的结果导出到一个 docx 文件中;
reg2docx:可以将回归结果保存到 docx 文件中,用法类似于 esttab。
### 2. 下载及安装
- 在 Stata 命令窗口中输入 `ssc hot` 命令,会显示出最热门的 10 个外部命令。
`ssc hot`
![图1: 最热门的10个外部命令](http://upload-images.jianshu.io/upload_images/8601921-8c755dcf491e0236.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 下载只需在 Stata 命令窗口执行 `ssc install **2docx, replace` 即可。
附加 replace 可以保证下载最新版并自动覆盖旧文件。
![图2:下载外部命令](http://upload-images.jianshu.io/upload_images/8601921-9d230b7358eb50a5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 3. 输出四张常用基本表格实操
#### 3.1 输出基本统计量: `sum2docx` 命令
##### 3.1.1 语法结构
sum2docx varlist [if] [in] using filename , [options]
其中,varlist指数值型变量列表,filename指的是输出的文件名,而该命令的options却非常丰富,可以根据需要选择。
##### 3.1.2 范例
```
sysuse auto,clear
sum2docx price-foreign using 1.docx, append obs mean(%9.2f) sd min(%9.0g) median(%9.0g) max(%9.0g) title("表 1: 描述性统计")
shellout 1.docx
```
![image]()
### 3.2 输出相关系数矩阵:`corr2docx` 命令
##### 3.2.1 语法结构
```
corr2docx varlist[if] [in] using filename, [options]
```
其中,varlist指数值型变量列表,filename指的是输出的文件名。
##### 3.2.2 范例
```
sysuse auto,clear
corr2docx price-foreign using 2.docx, star(* 0.05) fmt(%4.2f) title("表 2:相关系数矩阵")
shellout 2.docx
想指定显示特定的显著性水平并加标记,想设置小数点位数可以加上fmt选项。
```
![图4:输出相关系数矩阵](http://upload-images.jianshu.io/upload_images/8601921-300769831e9947e3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 3.3 组间均值差异检验:`t2docx` 命令
##### 3.3.1 语法结构
```
corr2docx varlist[if] [in] using filename, [options]
```
其中,varlist指数值型变量列表,filename指的是输出的文件名
##### 3.3.2 范例
```
sysuse auto,clear
t2docx price weight length mpg using 3.docx ,replace by(foreign) title("表 3:t检验")
shellout 3.docx
当然也可以改变小数点位数,加星星啥的,和上面一样一样的。
```
![图5:输出组间均值差异检验](http://upload-images.jianshu.io/upload_images/8601921-ea32df6ef35fedb5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 3.4 回归结果:`reg2docx` 命令
内啥,我们想把几个回归结果何在一张表里,能整不?
能!
##### 3.4.1 说明
`reg2docx` 命令可以将回归结果保存到 .docx 文件中,用法类似于 `esttab`。先逐项回归后再合并至一个文件中。
##### 3.4.2 范例
```
sysuse auto,clear
接下来做两个回归,并将结果放在一个表中,输出至4.docx
比如先做两个线性回归
reg price mpg weight length
est store m1
reg price mpg weight length foreign
est store m2
然后再做一个Probit回归
probit foreign price weight length
est store m3
reg2docx m1 m2 m3 using result.docx, replace r2(%9.3f) ar2(%9.2f) b(%9.3f) t(%7.2f) title("表4: 回归结果")
shellout result.docx
```
### 4. 输出四张表格至 Word 实操
基本技巧:先生成一张空白表,巧用 putdocx 和 append 命令
```
clear all
set more off
putdocx begin
putdocx 是 Stata15 最闪亮的功能之一,用户可以用命令行生成word文档。
putdocx paragraph, halign(center)
putdocx text ("四大基本表格汇总展示"), font("仿宋",16,black) bold linebreak
定义字体、大小等基本设置
putdocx save table.docx, replace
生成一张名为“table”的“word”文档
sysuse auto.dta
sum2docx price-length using table.docx, ///
append obs mean(%9.2f) sd min(%9.0g) median(%9.0g) max(%9.0g) title("表 1: 描述性统计")
putdocx begin
putdocx pagebreak
putdocx save table.docx,append
corr2docx price-length using table.docx,append star(* 0.05) fmt(%4.2f) title("表 2:相关系数矩阵")
putdocx begin
putdocx pagebreak
putdocx save table.docx,append
t2docx price-length using table.docx, append by(foreign) title("表 3:t检验")
putdocx begin
putdocx pagebreak
putdocx save table.docx,append
reg price mpg weight length
est store m1
reg price mpg weight length foreign
est store m2
probit foreign price weight length
est store m3
reg2docx m1 m2 m3 using table.docx, append r2(%9.3f) ar2(%9.2f) b(%9.3f) t(%7.2f) title("表4: 回归结果")
shellout table.docx
```