君生我未生!Stata - 論文四表一鍵出

作者: 吳水亭 | Stata連享會


君生我未生,我生君已老;

恨不生同時,日日與君好。

我離君天涯,君隔我海角;

化蝶去尋花,夜夜棲芳草。


每次折騰論文表格時,總是痛恨自己手慢,更怨罵萬惡的 Word 排版。

然而,偶拾esttaboutreg2,尤其是最近發布的sum2docxreg2docx,不禁想起上面這首小詩。

於是,庸俗地感慨:若能早識君,何至毀三鍵?!Ctrl ? C ? V

1. 寫在前面

描述性統計、相關係數矩陣、組間均值差異檢驗和實證結果是實證論文中最常見、同時也是最重要的四張基本表格。

Stata 官方命令 est table 僅能輸出回歸結果表格,效果差強人意,與多數期刊的格式要求相去甚遠。

外部命令則主要使用 logout 命令輸出**描述性統計、相關係數矩陣,用 ttable2ttable3 輸出組間均值檢驗表格,esttaboutreg2 輸出回歸結果。對於 Stata 15 以前的用戶而言,這些外部命令已經基本上可以滿足我們的需求。缺點是,每張表格需要單獨存放於一個 Word 或 Excel 文檔,事後尚需手動合併之。

若想錦上添花,在 Stata 15 版本下,我們可以使用今天介紹的四個命令,將論文中的所有表格自動匯總到一個 Word 文檔中,大幅提高表格處理效率。

2. 簡要說明

那麼,描述性統計、相關係數矩陣、組建均值差異檢驗和回歸結果四張常用表格如何快速輸出?我們可以使用四個熱門的外部命令: sum2docx, corr2docx, t2docxreg2docx

  • help sum2docx // 將描述性統計量表直接輸出到一個 docx 文件中;
  • help corr2docx // 將相關係數矩陣直接輸入到一個 docx 文件中;
  • help t2docx // 將分組均值t檢驗結果導出到一個 docx 文件中;
  • help reg2docx // 將回歸結果導出至 docx 文件中,用法類似於 esttab。

3. 下載及安裝

  • 在 Stata 命令窗口中輸入 ssc hot 命令,會顯示出最熱門的 10 個外部命令。

    ssc hot

如圖:

  • 下載只需在 Stata 命令窗口執行 ssc install **2docx, replace 即可。

    附加 replace 可以保證下載最新版並自動覆蓋舊文件。

以下載sum2docx 為例,其命令為:

. ssc install sum2docx, replace

4. 輸出四張常用基本表格實操

4.1 輸出基本統計量: sum2docx 命令

4.1.1 語法結構

sum2docx varlist [if] [in] using /// filename , [options]

其中, varlist 指數值型變數列表, filename 指的是輸出的文件名,該命令的 options 非常豐富,可以根據需要選擇。

4.1.2 範例

sysuse auto,clearsum2docx 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

結果如圖:

4.2 輸出相關係數矩陣:corr2docx 命令

4.2.1 語法結構

corr2docx varlist [if] [in] using filename, [options]

其中, varlist 指數值型變數列表, filename 指的是輸出的文件名。

4.2.2 範例

sysuse auto,clearcorr2docx price-foreign using /// 2.docx, star(* 0.05) /// fmt(%4.2f) /// title("表 2:相關係數矩陣")shellout 2.docx

想指定顯示特定的顯著性水平並加標記,想設置小數點位數可以加上 fmt 選項。

結果如圖:

4.3 組間均值差異檢驗:t2docx 命令

4.3.1 語法結構

corr2docx varlist[if] [in] using filename [, options]

其中, varlist 指數值型變數列表, filename 指的是輸出的文件名

4.3.2 範例

sysuse auto,cleart2docx price weight length mpg /// using 3.docx,replace /// by(foreign) /// title("表 3: t 檢驗")shellout 3.docx

當然也可以改變小數點位數,加星星啥的,和上面一樣一樣的。

結果如圖:

4.4 回歸結果:reg2docx 命令

如果我們想把幾個回歸結果何在一張表裡,該如何處理?

4.4.1 說明

reg2docx 命令可以將回歸結果保存到 .docx 文件中,用法類似於 esttab。先逐項回歸後再匯總至一個文件中。

4.4.2 範例

*-調入數據 sysuse "auto.dta", clear*-比如先做兩個線性回歸 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*-輸出結果至 Word 文檔 reg2docx m1 m2 m3 using result.docx, /// ar2(%9.2f) b(%9.3f) t(%7.2f) r2(%9.3f) /// title("表4: 回歸結果") replace*-查看 Word 文檔 shellout result.docx

結果如圖:

5. 將上述四張表輸出至一個 Word 文檔中

5.1 基本思路

  • (1) 用putdocx命令生成一個空白 Word 文檔 - [My_Table.docx],進而使用putdocx text等命令設定文檔屬性;
  • (2) 用sum2docx生成「表 1」, 並使用sum2docx命令的append 選項將這張表追加到 [My_Table.docx] 文檔尾部;
  • (3) 按第二步的方法, 依次使用 corr2docx, t2docx, reg2docx 命令添加後續表格.

5.2 寫作建議

  • (1) 寫論文正文時,新建一個 Word 文檔, 命名為: [My_Paper.docx]

    在需要插入表格的地方寫上[---------Table # Here--------],其中,# 表示表格編號;
  • (2) Stata 自動生成的 表格 則存放於 另一個 Word 文檔[My_Table.docx]

    裡面存放 [Table 1], [Table 2], …..

5.3 Stata 範例

我們需要把上述四個基本表格匯總至一份 word 文檔里。

clear allset more offputdocx begin //新建 Word 文檔putdocx paragraph, halign(center) //段落居中*-定義字體、大小等基本設置putdocx text ("附:文中待插入表格"), /// font("華為楷體",16,black) bold linebreak *-保存名為 My_Table.docx 的 Word 文檔 putdocx save "My_Table.docx", replace*-調入數據sysuse "auto.dta", clear*-----Table 1-----sum2docx price-length using "My_Table.docx", append /// obs mean(%9.2f) sd min(%9.0g) median(%9.0g) max(%9.0g) /// title("表 1: 描述性統計")*-Note: 選項 append 的作用是將這張新表追加到 "My_Table.docx" 尾部, 下同.*-----Table 2-----putdocx beginputdocx pagebreakputdocx save "My_Table.docx", appendcorr2docx price-length using "My_Table.docx", append /// star(* 0.05) fmt(%4.2f) /// title("表 2:相關係數矩陣")*-----Table 3-----putdocx beginputdocx pagebreakputdocx save "My_Table.docx", appendt2docx price-length using "My_Table.docx", append /// by(foreign) title("表 3:組間均值差異 t 檢驗")*-----Table 4-----putdocx beginputdocx pagebreakputdocx save "My_Table.docx", appendreg price mpg weight lengthest store m1reg price mpg weight length foreignest store m2probit foreign price weight lengthest store m3reg2docx m1 m2 m3 using "My_Table.docx", append /// r2(%9.3f) ar2(%9.2f) b(%9.3f) t(%7.2f) /// title("表4: 回歸結果")shellout "My_Table.docx" //大功告成!打開生成的 Word 文檔

結果如圖:

本文相關資料下載鏈接

為了方便各位複製文中的代碼和命令,我們將本文涉及的 Stata 命令匯總到了一個 Do-file 中,各位可以到 『Stata連享會?碼雲』 → 『快速輸出論文表格』 項目中下載。

  • 推文中使用的 Do-files:—-點擊下載—-
  • 推文原始 Markdown 文檔:—-點擊下載—-

關於我們

  • Stata 連享會(公眾號:StataChina)】由中山大學連玉君老師團隊創辦,旨在定期與大家分享 Stata 應用的各種經驗和技巧。
  • 公眾號推文同步發佈於 【簡書-Stata連享會】 和 【知乎-連玉君Stata專欄】。可以在簡書知乎中搜索關鍵詞StataStata連享會後關注我們。
  • 推文中的相關數據和程序,以及 Markdown 格式原文 可以在 【Stata連享會-碼雲】 中獲取。【Stata連享會-碼雲】 中還放置了諸多 Stata 資源和程序。如 Stata命令導航 || stata-fundamentals || Propensity-score-matching-in-stata || Stata-Training 等。

聯繫我們

  • 歡迎賜稿: 歡迎將您的文章或筆記投稿至Stata連享會(公眾號: StataChina),我們會保留您的署名;錄用稿件達五篇以上,即可免費獲得 Stata 現場培訓 (初級或高級選其一) 資格。
  • 意見和資料: 歡迎您的寶貴意見,您也可以來信索取推文中提及的程序和數據。
  • 招募英才: 歡迎加入我們的團隊,一起學習 Stata。合作編輯或撰寫稿件五篇以上,即可免費獲得 Stata 現場培訓 (初級或高級選其一) 資格。
  • 聯繫郵件: StataChina@163.com

weixin.qq.com/r/7Ujm-tf (二維碼自動識別)


Stata 寒假班 報名中……

連玉君主講,2018年1月13日-21日,北京)

Stata初級班?|?Stata高級班? | ?Stata全程班

peixun.net/view/307_det (二維碼自動識別)

peixun.net/view/308_det (二維碼自動識別)


推薦閱讀:

運用Stata進行數據分析的常用命令
Stata 畫圖有什麼美化技巧?
解釋變數互為因果如何處理?
喜歡的姑娘在學stata 怎麼用stata來送一份與眾不同的生日禮物?
VAR模型/vecm模型殘差自相關怎麼辦?

TAG:Stata | stata连享会 | 学术论文 |