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

上次說到:仔細看下圖,問題有兩個:

一個是問卷的觀察數(obs)不同,一個是race、sex這些必須轉換成虛擬變量(dummy variable)才有意義。後者上次已解決了,前者則是要利用if指令來處理missing values。

在Stata裡,missing value通常都是以 . 或.a、.b、.c來表示,也就是全部都以 . 開頭。所以我們心裡就會想:「對啊,我只要找出值不等於missing的就好了」。Stata有個很好用的指令:!missing(變數值),直接讓你只秀出來有值的變數。用這個function,再加上if指令,很快就可以完成了。if的比較指令先簡單介紹一下:

> 大於
< 小於
>= 大於等於
<= 小於等於
!= 不等於
== 等於 (這裡有兩個等號,因為如果只有一個等號,是assign值給左邊的變數,兩個等號才是比較是否相等)

但不要忘了,age與income的值都與其它人不一樣,所以你有兩個if指令要下,而且這兩個指令的關係是and,也就是age不是missing,而且income不是missing。那if之間的連接常用的就是and 或or:

& 等於
|  或者

那接下來,指令就會變成這樣:

sum race sex age income if !mi(age) & !mi(income)


!mi(age)是!missing(age)的縮寫。跑出來的結果如下圖:



4.png



這樣數量就一致了。如果照之前將race與sex都處理過,整體秀出來會像下面的樣子:



5.png



完整的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)

標籤: