통계공부/Stata

[Stata] 기본 명령어(6): gen, egen

대학원생A씨 2020. 3. 27. 08:45
반응형

이번 포스팅에서는 Stata의 기본 명령어에 대해 알아보고자 한다. 여기서 말하는 기본 명령어란, Stata 프로그램의 세팅과 관련된 명령어와 데이터(혹은 변수) 조작과 관련한 기초적인 명령어들을 뜻한다. 이번 포스팅에서는 gen/egen설명하고자 한다. 참고로, 저번 포스팅에서와 마찬가지로 예시를 드는 것이 좋을 것 같아 stata 프로그램의 lifeexp 데이터를 이용하여 설명을 하고자 한다.

 

*원래는 기초 명령어 포스팅을 간단하게 작성하려고 했지만, 생각보다 설명이 길어져서 포스팅이 점점 많아지고 있다. 오늘 소개할 명령어 gen, egen, 그리고 저번 포스팅에서 설명한 sum, tab은 정말 많이 쓰이고 중요한 기초적인 명령어이기 때문에 Stata 프로그램을 직접 사용하면서 해당 명령어에 익숙해지는 것이 가장 좋다.  [Stata] 기본 명령어: tab, sum 포스팅

 

 

 

1. gen/egen

gen 변수명 = 수식 : 새로운 변수를 생성할 때 쓰는 명령어
egen
변수명 = 함수() : gen의 확장형 명령어

사실상 gen egen 뒤에는 if, in, 이외에 옵션들을 붙일 수 있어서 다양한 방식으로 활용할 수 있는 명령어이다. 그래서 gen egen 변수를 설명하자면 한도 끝도 없이 길어지기 때문에, gen egen help command를 사용하여 설명을 한 번 보는 것을 추천한다.

 

egen gen의 확장형 명령어라고 생각하면 되는데, 예를 들어, 사람들이 변수(V1~V3)의 평균값을 새로운 변수(V4)에 저장한다고 해보자. 사실상 통계를 돌리다보면, 이러한 조작을 하는 경우가 많은데 매번 gen 변수를 사용하여 gen V4 = (V1 + V2 + V3)/3이라고 입력하는 것은 분명히 귀찮은 일이다. 이러한 번거로움을 덜어주는 것이 바로 egen으로 egen 중에서 대표적으로 많이 사용하는 rowmean이라는 함수를 사용하여 egen V4 = rowmean(V1 V2 V3)라고 입력하면 동일한 결과를 얻을 수 있다. 이처럼 egen은 사람들이 많이 사용할만한 함수들을 여러 개 모아놨는데, 그 종류가 정말 많으므로 help egen을 입력하여 어떤 함수들이 있는지 확인하고 자기가 원하는 기능을 선택적으로 골라 사용하길 바란다. 대표적으로 자주 사용하는 egen을 정리하면 다음과 같다.

 

egen V = rowmean (v1 v2 v3) : v1, v2, v3의 평균값을 V에 저장한다.
egen V = rowtotal (v1 v2 v3) : v1, v2, v3의 을 V에 저장한다.
egen V = rowmedian (v1 v2 v3) : v1, v2, v3의 중앙값을 V에 저장한다.
egen V = rowmiss (v1 v2 v3) : v1, v2, v3에서의 결측값을 V에 저장한다.

 

 

그리고 위에서 잠깐 언급했지만 gen egen은 뒤에 if를 많이 붙여 쓰기도 한다. 예를 들어, 내가 나이(age) 변수를 이용하여 나이의 제곱한 값(age^2) sq_age라는 새로운 변수에 저장한다고 해보자. 그렇다면 원래 명령어는 다음과 같이 입력해야 한다.

 gen sq_age=age^2

 

그런데 나이 변수에 결측값을 -9로 저장해서, 이러한 경우를 제외하고 sq_age 변수를 생성해야 한다고 해보자. 그러면 이 때는 다음과 같이 명령어를 입력할 수 있을 것이다.

 gen sq_age=age^2 if age>0

 

, if라는 조건문을 사용하여 age 0초과인 경우(, age값이 -9인 경우인 결측값을 제외하기 위해)만 선택적으로 sq_age라는 새로운 변수를 생성할 수 있도록 한 것이다.

반응형