본문 바로가기

방법론 공부/계량통계 방법론

[STATA] 변수 정렬 및 관리 - sort, tab, gen, egen, ren

주어진 dataset을 원하는 변수에 따라 새로 정렬하려면 어떻게 할까요. sort command를 사용합니다. 


sort benef_code


그러면 benef_code의 값이 작은 것부터 오름차순으로 정렬이 되겠지요.




tab command는 범주형 자료에 유용한 빈도값을 요약해줍니다. tab command와 generate() option을 함께 사용하면 각각에 해당하는 더미변수를 생성하지요. 예컨대 


tab group, gen(g)


는 각각의 group에 해당하는 더미변수 g1, g2, g3,...를 만들어 냅니다. 




generate 혹은 gen command는 주어진 dataset에 없는 변수를 새로 만들어낼 때 사용합니다. 

gen 변수명 = 변수의 내용


예컨대

gen gpm=1/mpg

와 같이 수식을 통해 변수를 생성할 수도 있고, 


gen bigsize=1 if weight>300

와 같이 조건을 붙일 수도 있습니다. 


한편, 위와같이 수식을 통해 변수를 생성할 때, 기존 data 상의 결측값에 대해서는 새로운 변수가 생성되지 않습니다.




gen이 dataset 내 변수의 단순한 변형의 형태인 변수를 만들어내는데 사용된다면, egen은 조금더 복잡한 함수를 거친 변수를 만들어내는데 사용됩니다. 따라서 


egen 새로운 변수명=함수(기존 변수명)


의 형태로 나타나며, 이때 사용될 수 있는 함수에는 mean, count, max, median, rank 등이 있습니다. 또한, egen은 결측값에 대해 새로 만들어진 변수의 값을 자동적으로 0으로 처리하는 특징이 있습니다. 




gen rand=runiform()


은 [0,1) 사이에서 임의의 숫자를 생성합니다. 전체 dataset에서 임의의 샘플을 뽑아서 사용할 때 유용하지요. 


. gen rand=runiform()

. gen select68=1 if rand<=.50 & yr2002==0

. gen select02=1 if rand<=.50 & yr2002==1

/*comparing the results of random sample selection to the full data sets*/

. histogram age_mom if select68==1, width(1) normal

. histogram age_mom if select02==1, width(1) normal


이를 통해 1968년과 2002년의 데이터를 비교할 수 있습니다.




마지막으로 ren command는 변수명을 변환할 때 사용합니다. 


ren benef_code old_benef_code


와 같은 식이지요.




이 포스팅이 마음에 드셨다면 공감 버튼을 눌러주세요

로그인 하지 않으셔도 공감하실 수 있답니다.