君生我未生!Stata - 論文四表一鍵出
作者: 吳水亭 | Stata連享會
君生我未生,我生君已老;
恨不生同時,日日與君好。我離君天涯,君隔我海角;化蝶去尋花,夜夜棲芳草。
每次折騰論文表格時,總是痛恨自己手慢,更怨罵萬惡的 Word 排版。
然而,偶拾esttab
、outreg2
,尤其是最近發布的sum2docx
,reg2docx
,不禁想起上面這首小詩。於是,庸俗地感慨:若能早識君,何至毀三鍵?!Ctrl ? C ? V
1. 寫在前面
描述性統計、相關係數矩陣、組間均值差異檢驗和實證結果是實證論文中最常見、同時也是最重要的四張基本表格。
Stata 官方命令 est table
僅能輸出回歸結果表格,效果差強人意,與多數期刊的格式要求相去甚遠。
外部命令則主要使用 logout
命令輸出**描述性統計、相關係數矩陣,用 ttable2
或 ttable3
輸出組間均值檢驗表格,esttab
或 outreg2
輸出回歸結果。對於 Stata 15 以前的用戶而言,這些外部命令已經基本上可以滿足我們的需求。缺點是,每張表格需要單獨存放於一個 Word 或 Excel 文檔,事後尚需手動合併之。
若想錦上添花,在 Stata 15 版本下,我們可以使用今天介紹的四個命令,將論文中的所有表格自動匯總到一個 Word 文檔中,大幅提高表格處理效率。
2. 簡要說明
那麼,描述性統計、相關係數矩陣、組建均值差異檢驗和回歸結果四張常用表格如何快速輸出?我們可以使用四個熱門的外部命令: sum2docx, corr2docx, t2docx 和 reg2docx:
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專欄】。可以在簡書和知乎中搜索關鍵詞
Stata
或Stata連享會
後關注我們。 - 推文中的相關數據和程序,以及 Markdown 格式原文 可以在 【Stata連享會-碼雲】 中獲取。【Stata連享會-碼雲】 中還放置了諸多 Stata 資源和程序。如 Stata命令導航 || stata-fundamentals || Propensity-score-matching-in-stata || Stata-Training 等。
聯繫我們
- 歡迎賜稿: 歡迎將您的文章或筆記投稿至
Stata連享會(公眾號: StataChina)
,我們會保留您的署名;錄用稿件達五篇
以上,即可免費獲得 Stata 現場培訓 (初級或高級選其一) 資格。 - 意見和資料: 歡迎您的寶貴意見,您也可以來信索取推文中提及的程序和數據。
- 招募英才: 歡迎加入我們的團隊,一起學習 Stata。合作編輯或撰寫稿件五篇以上,即可免費獲得 Stata 現場培訓 (初級或高級選其一) 資格。
- 聯繫郵件: StataChina@163.com
http://weixin.qq.com/r/7Ujm-tfEHIpjrZOd9x3- (二維碼自動識別)
Stata 寒假班 報名中……
連玉君主講,2018年1月13日-21日
,北京)Stata初級班?|?Stata高級班? | ?Stata全程班
http://www.peixun.net/view/307_detail.html (二維碼自動識別)
http://www.peixun.net/view/308_detail.html (二維碼自動識別)
推薦閱讀:
※運用Stata進行數據分析的常用命令
※Stata 畫圖有什麼美化技巧?
※解釋變數互為因果如何處理?
※喜歡的姑娘在學stata 怎麼用stata來送一份與眾不同的生日禮物?
※VAR模型/vecm模型殘差自相關怎麼辦?