본문 바로가기
STATA

04. [STATA] 변수 생성, 수정, missing value, recoding

by Aubreyy 2021. 8. 2.

이번에도 역시 auto 데이터를 사용하였다. 

sysuse auto
ed

 

 

변수 생성하기

예를 들어 weigt와 length를 더한 값을 변수로 만들고 싶을 때는 아래와 같이 하면 된다. 곱하기 나누기도 마찬가지로 아래처럼 하면 된다. 

gen wgt_lng=weight+length
br

gen 새로운변수 = 계산대상변수1 + 계산대상변수2

이렇게 더했으면 br 또는 ed를 쳐서 눈으로 한번 확인해보는 것이 좋다. 아래 그림을 보면 잘 더해진 것 같다.

 

Dummy 변수 생성하기

변수를 1과 0으로만 나타내고 싶을 때는 이렇게 하면 된다.

gen mer_cx7=0
replace mer_cx7=1 if make=="Merc. CX-7"
br

모든 값이 0인 gen mer_cx7 이라는 변수를 생성한뒤, make가 Merc. CX-7인 행만 1로 변경.

마찬가지로 ed또는 br로 제대로 코딩이 되었는지 확인하면 된다.

 

만약 missing value가 있다면 다음과 같이 하는 것이 좋다.

gen mer_cx7=.
replace mer_cx7=1 if make=="Merc. CX-7"
br

 

변수끼리 더하기

gen weight2 = weight^2
gen weight3 = weight*2
egen weight_suum = rowtotal (weight weight2 weight3)

 

egen 원하는변수이름 = rowtotal (더하고자하는변수1 2 3)

 

Row의 missing value 갯수 구하기

egen rmiss=rowmiss (make price mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign)
tab rmiss

각 행마다 missing value가 몇개인지 확인을 할 수 있다.

. tab rmiss

      rmiss |      Freq.     Percent        Cum.
------------+-----------------------------------
          0 |         69       93.24       93.24
          1 |          5        6.76      100.00
------------+-----------------------------------
      Total |         74      100.00

 

Missing Value 확인하기

tab rep78, missing

. tab rep78, missing

     Repair |
record 1978 |      Freq.     Percent        Cum.
------------+-----------------------------------
          1 |          2        2.70        2.70
          2 |          8       10.81       13.51
          3 |         30       40.54       54.05
          4 |         18       24.32       78.38
          5 |         11       14.86       93.24
          . |          5        6.76      100.00
------------+-----------------------------------
      Total |         74      100.00

또는 다음과 같은 방법을 사용할 수 있다.

ssc install mdesc
mdesc

. mdesc

    Variable    |     Missing          Total     Percent Missing
----------------+-----------------------------------------------
           make |           0             74           0.00
          price |           0             74           0.00
            mpg |           0             74           0.00
          rep78 |           5             74           6.76
       headroom |           0             74           0.00
          trunk |           0             74           0.00
         weight |           0             74           0.00
         length |           0             74           0.00
           turn |           0             74           0.00
   displacement |           0             74           0.00
     gear_ratio |           0             74           0.00
        foreign |           0             74           0.00
----------------+-----------------------------------------------

 

Recoding하기

아래 예시에서는 0을 1로, 1을 2로 바꾸어보았다.

recode rmiss (0=1)(1=2)
tab rmiss

recode 리코딩하고픈변수 (원래코딩=원하는값)(원래코딩2=원하는값2)

. tab rmiss

      rmiss |      Freq.     Percent        Cum.
------------+-----------------------------------
          1 |         69       93.24       93.24
          2 |          5        6.76      100.00
------------+-----------------------------------
      Total |         74      100.00

 

label 달기

여기서는 rmiss=1을 missing으로 라벨링, rmiss=0을 no_missing으로 라벨링하였다.

label define rmiss 1 missing 2 no_missing
label value rmiss rmiss

tab rmiss
tab rmiss, nol

. tab rmiss

      rmiss |      Freq.     Percent        Cum.
------------+-----------------------------------
    missing |         69       93.24       93.24
not_missing |          5        6.76      100.00
------------+-----------------------------------
      Total |         74      100.00

. tab rmiss, nol

      rmiss |      Freq.     Percent        Cum.
------------+-----------------------------------
          1 |         69       93.24       93.24
          2 |          5        6.76      100.00
------------+-----------------------------------
      Total |         74      100.00

라벨링이 잘 된것을 확인할 수 있다.

 

모든라벨 확인하기

label list

. label list
rmiss:
           1 missing
           2 no_missing
origin:
           0 Domestic
           1 Foreign

'STATA' 카테고리의 다른 글

06. [STATA] 테이블 reshape  (0) 2021.08.04
05. [STATA] 두 개 테이블 합치기  (0) 2021.08.03
03. [STATA] 변수 확인하기  (0) 2021.08.01
01. [STATA] 로그, 코드 관리  (0) 2021.07.31
02. [STATA] 데이터 불러오기  (0) 2021.07.31

댓글