當前位置:編程學習大全網 - 編程語言 - Stata中的數值型變量分類神器--recode

Stata中的數值型變量分類神器--recode

初識recode命令,我以為它就是個改缺失值的小能手。我們常常看見它是這樣出現的:

它的作用等效如下:

再識recode,才發現這個小命令沒那麽簡單!掌握了recode,處理起數值型變量不是壹般地溜!好東西就要分享,接下來,我就給大家全面解析recode命令。

recode命令的完整語法如下:

其中, varlist 是指我們想改變的壹到多個變量; erule 是我們指定的改變規則,形式為 新值=舊值 。可以同時指定多個規則,每個規則用小括號括起來,用空格分隔; if 和 in 是條件和範圍篩選語句,可以根據目的自由添加;最後是壹些重要的 options 選項,後面會具體介紹。

註意:在recode命令中的1/5和Stata數列表示中的1/5不同。數列表示中1/5指1,2,3,4,5這5個整數,但在recode命令中1/5包括1到5閉區間內全部實數。 ?

?此外,我們還可以用min和max來代表數值,且在等號左邊和右邊均可。

為了更好說明含關鍵詞的規則形式,我們先用input命令輸入壹些變量與數值:

並且為了更好展示效果,插播壹下,介紹兩個簡單但十分重要的選項:

?首先是 generate() 選項,用於生成新變量的變量名。其次是 prefix() 選項,用於添加新變量前綴。如果不使用這兩個選項,我們使用recode命令時就會使初始數據產生改變,帶來很多不方便,因此 強烈推薦 在使用recode命令時添加這兩個選項之壹。 ?

?例如:將原始數據中的1到5改為0,並將改變後的數值儲存在壹個由原變量名稱添加前綴"new_"的新變量中。

此時,數據集如圖所示:

recode命令中的規則指定是有序的。從左到右的規則中,壹旦壹個值在前面已經被指定做出某種改變了,在後面的規則中如果再次指定這個值,會被忽視。以剛剛的數據為例:

在recode命令中,如果添加if或in語句限定了觀測值改變範圍,在產生的新變量中,範圍外的數值將會變為缺失值。例如,指定前三行的數值進行相應改變:

觀察數據集可發現,前三行外的數值全部變成了缺失值。這時加上copyrset選項,就會將範圍外的觀測值原樣復制到新變量中。

label()選項可以說是recode命令的靈魂,正是因為有label()選項,recode才可無愧於分類神器這個稱號。在之前的推文 讓妳的數據壹目了然--label命令介紹 中,我們介紹過如何使用label命令來給值貼標簽。壹般分為兩步走,先用label define 定義值標簽,再用label value 貼標簽。而recode命令中,簡單壹行命令就可以搞定這兩步! ?

下面我們以Stata提供的網絡數據集來介紹壹下recode命令中的label()選項:

查看repair這個值標簽的內容。

直接在每個規則指定後面用雙引號添加新標簽內容,並且在最後添加label()選項為新標簽命名即可:

今天對recode命令的介紹就到這裏了,快去動手試試分類妳的數值型變量吧!

  • 上一篇:防震減災安全教育教案
  • 下一篇:小鵬汽車g3真的能跑520公裏嗎
  • copyright 2024編程學習大全網