天天看點

《Stata統計分析與應用(第2版)》一2.3 資料的整理

本節書摘來自華章出版社《stata統計分析與應用(第2版)》一書中的第2章,第2.3節,作者 周廣肅,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視

本節将介紹資料整理的相關内容,主要包括資料的标簽與排序、資料拆分、資料合并和資料的長寬轉換等内容。

資料标簽

為了讓使用者更加清楚地了解資料來源、變量含義、觀測值等相關内容,stata可以為資料、變量、觀測值添加标簽,其實标簽就是對相關資料的解釋。最常用的标簽方法有三類:一是為資料庫添加标簽,二是為變量添加标簽,三是為觀測值添加标簽。

為資料庫添加标簽的基本指令為:

["label"]即代表所要添加的标簽内容。

為變量添加标簽的基本指令為:

varname代表所要添加标簽的變量名稱,["label"]代表所要添加的标簽内容。

對于數值型的分類變量,其含義并不直覺,例如我們通常用0和1來區分性别,但如果缺乏上下文,其他使用者很難區分0是代表男性還是女性,這時如果給數值添加标簽,就友善使用者了解了。為數值添加标簽是通過以下兩步來完成的。

第一步是定義數值标簽,基本指令為:

在這個指令中,lblname代表所要定義的數值标簽名稱,“#”代表所要定義的數值,"label"代表所要添加的标簽内容。需要使用者注意的是後方options的内容,其中add的作用是添加标簽内容,modify的作用是對已存在的标簽内容做修改,nofix的作用是要求stata不為标簽的内容而改變原變量的存儲容量。

第二步是将所定義的資料标簽與相關變量結合,基本指令為:

varname代表将要添加标簽的變量名稱,[lblname]代表剛剛定義的資料标簽名稱。

下面通過一個執行個體——給usaauto.dta資料庫添加三類标簽,将詳細介紹标簽的使用方法。usaauto資料檔案如表2.1所示。

為整個資料庫添加标簽“1978年美國汽車産業的橫截面資料”,其指令如下:

label data "1978年美國汽車産業的橫截面資料"

為變量make和mpg添加标簽“品牌”和“每加侖油行使裡程數”,其指令如下:

label variable make "品牌"

label variable mpg "每加侖油行使裡程數"

變量foreign為分類變量,0代表國産,1代表進口,為了便于觀察,為0和1添加标簽,具體指令為:

其中,foreignlabel表示标簽的名稱,0 "domestic" 1 "foreign"表示定義的規則,數字0的标簽是domestic,數字1的标簽是foreign。

執行完指令之後,可以看到在資料表中,顯示結果從圖2.12變為圖2.13。

《Stata統計分析與應用(第2版)》一2.3 資料的整理

标簽添加完成以後,可以通過label dir指令,檢視已經建立标簽的相關内容。

排序資料

為了處理資料的友善,有時需要對資料進行排序處理。在stata中排序的指令主要有兩個:一個是sort指令,另一個是gsort指令。

sort指令的基本語句是:

varlist代表将要進行排序的變量名稱,[in]代表排序的範圍,[, stable]的含義是如果兩個觀測值相同,其順序保持與原資料相同。

gsort指令的基本語句是:

其中需要說明的内容有兩點:一,[+]表示按升序排列,這也是stata預設的排列方式,[-]表示按降序排列;二,generate(newvar)表示排序之後生成新的變量,mfirst表示将缺失值排在最前面。

将usaauto資料檔案中的觀測值按變量price由小到大排列,這個操作可以用sort指令完成,具體操作如下:

當然也可以用gsort指令完成,具體操作如下:

gsort + price

資料的橫向拆分

原始資料有時包含過多的變量,但在實際應用中可能根據需要将原始資料拆分為不同的資料表,這時就要實作資料的橫向拆分。資料的橫向拆分用到的兩個指令為drop和keep,下面做一下詳細的講解。

drop指令是用來删除某些變量和觀測值的,基本指令如下:

keep指令是用來保留某些變量和觀測值的,基本指令如下:

例如,water資料檔案包含4個變量,分别是year、capital、production、labor,将water資料檔案拆分為兩個資料檔案:一個資料檔案包含year和production兩個變量,命名為wateroutput;另一個資料檔案包含year、capital和labor三個變量,命名為waterinput。首先生成wateroutput檔案:

以上指令使用drop指令删除變量capital和labor,然後對其進行儲存。同樣我們可以用keep來決定保留變量。

資料的縱向拆分

原始資料有時包含過多的樣本觀測值,但在實際應用中可能根據需要将其按某種特征拆分為不同的資料表,這就是将要實作資料的縱向拆分。資料的縱向拆分用到的主要指令還是drop和keep。

例如,将usaauto資料檔案拆分為兩個資料檔案:一個資料檔案為domesticauto,隻包含國産車的相關内容;另一個資料檔案為foreignauto,隻包含進口車的相關内容,具體操作如下:

以上指令完成了第一個資料檔案的建立,将foreign變量為1的資料删除并重新命名。

第二個資料檔案建立的指令如下所示:

資料的橫向合并

資料的橫向合并是橫向拆分的逆操作,但是其要比拆分複雜,因為合并時要實作同一個資料的對接,而不能出現對接錯誤的情況,是以在橫向合并之前最好先對資料進行排序處理,然後實作合并。合并所使用的指令語句為merge,具體語句如下所示:

其中,[varlist]代表合并進去的新變量,using filename指的是所要與原檔案合并的檔案路徑,可選項options包含較多的功能,表2.11顯示了其具體内容。

《Stata統計分析與應用(第2版)》一2.3 資料的整理

例如,利用橫向拆分示例中生成的資料檔案waterinput和wateroutput實作資料的橫向合并,比對變量為year,生成新的資料檔案命名為waternew。使用指令如下:

在以上指令語句中,第1個指令語句實作了wateroutput資料檔案的打開,第2個指令語句将檔案按年份變量進行排序,第3個指令語句儲存了排序之後的資料檔案,第4個指令語句實作了waterinput資料檔案的打開,第5個指令語句将此資料按年份變量進行排序,第6個指令語句按年份變量将wateroutput檔案合并到waterinput檔案中,第7個指令語句儲存合并之後的資料檔案。

操作完成以後我們可以發現多了一個名稱為_merge的變量,這個變量将顯示合并的情況,如果數值為3,則為合并成功,如果數值為1或2,則合并失敗。

資料的縱向合并

資料的縱向合并同樣可視為資料縱向拆分的逆操作,使用的主要指令為append,具體語句如下:

[, options]的内容與merge相似,但更為簡化。

例如,利用縱向拆分示例中生成的資料檔案domesticauto和foreignauto實作資料的縱向合并,生成的資料檔案命名為usaautonew。操作指令如下:

在面闆資料中,如果包含兩個以上的辨別變量,則資料有兩種表現形式:一種是長資料,另一種是寬資料。在長寬資料的轉換中,所使用到的指令為reshape指令,具體指令語句為:

long表示将寬資料轉化為長資料,wide表示将長資料轉化成寬資料,stubnames表示需要轉化的變量的名稱字首,i(varlist)表示識别變量。options最常用的為j(varname [values]),它表示用于進行長寬變換的變量,通常為時間變量。

例如實作表2.12和表2.13資料形式的轉換,則必須使用本小節講述的reshape指令。

《Stata統計分析與應用(第2版)》一2.3 資料的整理
《Stata統計分析與應用(第2版)》一2.3 資料的整理

将表2.12中的寬資料轉化為表2.13中長資料的操作指令如下:

english和science為将要轉化的變量名稱的字首,即将要生成的變量名稱,i(number name) 表示識别變量,即按學号number和名稱name區分所有觀測值,j(year)表示按年份進行轉化。

若要将上述長資料轉化為寬資料,可使用操作指令如下:

複習與習題

本章回顧

打開資料檔案的基本指令:

stata常用的資料類型主要有三類,即數值型、字元型和日期型。

資料壓縮的主要指令:

資料類型的轉化主要有兩類:

将字元型變量轉化成數值型變量:

将數值型變量轉化成字元型變量:

在stata中建立資料庫有兩種方法,一種為菜單法,另一種為指令法。指令為:

導入不同格式資料的三種指令:

為資料添加标簽的指令為:

資料排序的指令為:

資料拆分的相關操作和指令:

資料合并的相關指令為:

長寬資料轉化的相關指令為:

習題

将如表2.14所示的資料内容輸入到stata中,命名為zuoye2.1,并将此資料檔案進行壓縮。

《Stata統計分析與應用(第2版)》一2.3 資料的整理

将數值型變量math和chinese轉換成字元型變量,然後再将其轉換成數值型變量。

為資料庫zuoye2.1添加标簽“學生成績”,為math變量添加标簽“數學成績”,為分類變量gender添加标簽,1為“male”,0為“female”。

使用兩種指令将資料庫zuoye2.1按照數學成績進行排序。

将zuoye2.1資料庫橫向拆分為如表2.15和表2.16所示的兩個資料表,然後再将其橫向合并。

《Stata統計分析與應用(第2版)》一2.3 資料的整理

将zuoye2.1資料庫縱向拆分為如表2.17和表2.18所示的兩個資料表,然後将其縱向合并。

《Stata統計分析與應用(第2版)》一2.3 資料的整理

将如表2.19所示的資料内容輸入到stata中,命名為zuoye2.2,并将其轉換成長資料,然後再将其轉回寬資料。

《Stata統計分析與應用(第2版)》一2.3 資料的整理