Stata: 輸出Descriptive Statistics表格

要作統計分析,第一步通常是看descriptive statistics,但是要畫個表格那可就很麻煩了。Stata的好處就是可以讓你直接輸出這部分的表格,方法也很簡單。

如果想要跟我一起實作,可參考前兩篇:

Stata: 敘述統計(descriptive statistics)

Stata: 敘述統計(descriptive statistics)之二

預備的code如下:

use http://twtcsl.org/dataset/gss2000.dta
tab race
tab race sex
sum race sex age income
tab race, gen(d)
rename d1 dwhite
rename d2 dblack
rename d3 dother
tab sex, gen(d)
rename d1 dmale
rename d2 dfemale
sum dwhite dblack dother dmale age income if !mi(age) & !mi(income)

執行結果像這樣:

5.png

 

好了,要怎麼輸出呢?一種是利用stata內建edit-copy table的方式剪貼,之後建議貼到excel檔稍微排版之後再送到word裡。另一種方法就是和輸出regression table一樣用程式的方式來控制。
estpost sum dwhite dblack dother dmale age income if !mi(age) & !mi(income)
esttab using sum2.rtf, cells("mean(fmt(2)) sd(fmt(2)) min(fmt(1)) max(fmt(0))") nomtitle nonumber replace

輸出結果像下圖一樣:

1.png

如果要再進階一點,想要看age income在各種族的平均值等,就要多動一點手腳。這時候因為我們要用原本的race指令配合by來作summary,就不用後來產生的dummy variable,像是dwhite,而是用原先的變數race。不過要用by指令,要記得先sort。

sort race
by race: eststo: estpost sum age income if !mi(age) & !mi(income)
esttab using grp_sum.rtf, cells("mean(fmt(2)) sd(fmt(2))") replace

結果就像下圖所示:

2.png

漂漂亮亮的表格就出來了,之後再稍微修改一下就行了。

12 thoughts on “Stata: 輸出Descriptive Statistics表格”

  1. 請問如果要再加上輸出P25 P50 P75
    寫成這樣 這哪裡寫錯呢?

    esttab using sum3.rtf, cells("mean(fmt(3)) p25(fmt(3)) p50(fmt(3)) p75(fmt(3)) sd(fmt(3)) min(fmt(3)) max(fmt(3))") nomtitle nonumber replace

    thanks for your answer!!

  2. 不大容易,要分兩行指令:

    estpost sum variables, detail
    esttab using 12344321.rtf, cells("mean(fmt(2)) sd(fmt(2)) p25(fmt(2)) p50(fmt(2))") replace

    要什麼東西就自己加吧!

  3. 謝謝你
    成功了….

    真是太感謝了!!
    因為我需要一直做研究 所以輸出表格對我來說很花時間
    如果可以透過程式把表格寫好 真的方便很多

    很感謝你的分享!!
    謝謝你

  4. 你好

    請教一下,輸出成word檔的時候
    要如何挑選到小數點後第四位呢??
    因為輸出好像只有點後兩位,我需要到四位數比較嚴謹一點
    請問要如何下指令呢??

  5. 喔喔~

    原來如此,太感謝你囉~~
    而且還回覆的如此快速,我還以為至少要等個一兩天XD

    這個網站真的讓我受益良多
    感謝分享~

  6. 請問一下Stata 11的語法是不是改變了?
    我試著要用by XX: eststo: estpost sum Var1 Var2這個指令卻一直出現錯誤訊息 "unrecognized command: estpost",雖然我之前已經可以esttab來輸出迴歸的output了
    如果單獨用eststo和 estpost有什麼不同呢?雖然我得到的錯誤訊息是"last estimates not found"

  7. 老師您好

    學生想請問一下,學生在打完
    sort year1
    by year1: eststo: estpost sum g_h b_hh if !mi(npl) & !mi(b_hh)
    esttab using grp_sum.rtf, cells("mean(fmt(2)) sd(fmt(2))") replace

    這句之後出現了 varlist not allowed

    請問有可能的原因是什麼呢?

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top
Verified by MonsterInsights