Stata: 產生累積次數分配

網友問到:「哈囉,想請教版主有關STATA的問題,如果我想產生一個新變數,而這個變數為另一個變數的累積次數分配,應該怎麼寫此一指令呢?用ta X(變數) 可以得知變數分佈情況,後學所學的指令可能不足,故想請教版主是否知道? 謝謝」

首先,先使用一個資料庫:

sysuse auto, clear

tab 一下結果:

1.png

之後先產生次數分配:

bysort rep78: gen freq = _N

檢查一下結果:

list rep78 freq in 1/20

2.png

這還只是該值的頻率而已,還不是累積次數分配。如果要作累積次數分配,還得加工一下。

by rep78: gen cumfreq = _N if _n == 1
這一行是說,rep78 每一個值的第一筆資料,cumfreq 的值都設為 rep78那個值的次數。如果是該值的第二筆,那就會設成missing。結果如下圖。


3.png



接著下一步,就是把這些值加起來。

replace cumfreq = sum(cumfreq) if !mi(rep78)

最後檢查一下成果:


tabdisp rep78, cell(freq cumfreq)

list rep78 freq cumfreq in 1/20


4.png



大功告成!如果不要用 missing 的freq,記得要處理一下喔!



參考網頁:http://www.stata.com/support/faqs/data/tabdisp.html

標籤: