天天看點

【Stata】CGSS資料清理:Codebook速成法

對資料使用者來說,了解一個調查資料基本情況的常見途徑就是檢視該資料的codebook。

對資料所有者/提供方來說,制作一份詳細的codebook是其資料管理工作中不可或缺的一環。

2016年上半年CGSS項目組把CGSS2003年到CGSS2013年期間的8年年度資料合并成一個大資料,根據CGSS資料的特點,為合并資料整理了codebook。

CGSS合并資料的codebook包括以下内容:題目、變量名、變量标簽、取值、值标簽以及變量取值在不同年份中的頻數分布。

CGSS合并資料codebook的主體為類别變量在不同年份的頻數分布。

本文以CGSS20032013兩年合并資料中變量a1aa7“第二個家庭成員與被訪者之間的關系”為例,為大家介紹兩種快速生成頻數分布表的方法。該頻數分布表的基本結構如下圖所示:

【Stata】CGSS資料清理:Codebook速成法

方法一:指令組合codebookout + tabulate

指令

codebookout

可以把變量取值和值标簽直接導到excel表中,導出結果如下圖所示:

【Stata】CGSS資料清理:Codebook速成法

但我們的codebook中除了取值和值标簽外,還需要列出變量取值在每一年中的頻數分布,指令codebookout不具備這一功能。此時,還需通過指令tabulate列出變量的頻數分布,再與codebookout的結果進行比對即可,tabulate結果如下圖所示:

【Stata】CGSS資料清理:Codebook速成法

指令tabulate生成的頻數分布表隻顯示任何一年頻數不為0的取值的頻數分布,是以還需給兩年資料頻數都為0的取值加“0”,這樣就可以得到變量a1aa7在圖1中所示的完整的頻數分布表。

方法二:指令fre

指令codebookout和tabulate的組合可以順利生成codebook,但生成的過程中要進行多步繁瑣的比對和修正。其一,要通過取值将指令tabulate得的頻數與指令codebookout導出的結果進行比對;其二,要單獨添加頻數為“0”的取值;其三,指令tabulate執行一次隻能檢視一組變量的頻數分布情況,在CGSS20032013資料中,我們需要得到多個變量在不同年份的頻數分布狀況,是以用指令tabulate檢視時需要多次重複執行同一個指令。

鑒于以上情況,我們引入Stata的一個第三方指令fre。指令fre與不同選項的組合,能很好地綜合codebookout和tabulate的功能,進而幫我們更快捷地得到一個完整的頻數分布表。指令fre文法結構如下:

仍然以變量a1aa7“第二個家庭成員與被訪者之間的關系”為例,通過指令fre檢視其頻數分布情況,結果如下圖所示:

【Stata】CGSS資料清理:Codebook速成法

指令fre可以一次檢視多個變量的頻數分布,但不能交叉檢視,是以,檢視變量在不同年份的頻數分布時需要通過if條件限制。從上圖中可以看出,單獨用指令fre,可以同時列出取值、值标簽和頻數分布,但頻數分布為“0”的取值依然不能完整列出,此時,隻要給指令fre加選項include便可以解決這一問題,如下所示:

【Stata】CGSS資料清理:Codebook速成法

然後對其稍作調整便可得到所示的頻數分布表。

總結

至于其他的學習整理方法,可以去自行學習和查找!

繼續閱讀