본문 바로가기

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

[STATA] 카테고리에 따라 데이터 정렬 혹은 생성 - sort, gsort, by, bysort

많은 STATA commands들은 개별 변수 내의 group 별로 처리되고는 합니다. 


sort

sort command는 다음에 지정된 변수를 기준변수로 하여 오름차순(ascending order)으로 표본들을 정렬합니다. 두 개의 변수가 지정된 경우에는 2번째 변수는 2순위 기준변수가 됩니다. 한편, 문자열 변수인 경우인 경우에는 영어는 알파벳순, 한글은 가나다순으로 정렬됩니다.

. sort company year



gsort 

gsort command는 -와 함께 사용하여 지정된 변수를 기준변수로 하여 내림차순(descending order)으로 표본들을 정렬합니다. 다음의 command는 company 변수의 표본들을 기준으로 내림차순으로 정렬합니다.

. gsort -company 



by

by command는 다른 command들의 접두어처럼 사용되어 group 별로 해당 command를 처리하는 것을 도와줍니다.by command를 사용하여 각 변수 별 표본을 별개의 dataset인 것처럼 처리할 수 있습니다. 

by marital: summarize sociability

와 같은 식입니다. 한편, 결혼 상태별로 가장 어린 나이가 몇 살인지 계산하고 싶을 때 다음의 command를 사용합니다. 

sort marital age

by marital: gen minage=age[1]

각각의 marital status에 따라서, 그리고 그 marital status 하에서 age에 따라 오름차순으로 dataset을 정렬합니다. 그리고 marital status 하에서 첫 번째 관측치(age에 따라 오름차순으로 정렬된, 즉 최소값)의 값을 관측치로 하는 새로운 변수 minage를 만듦니다. 



bysort

bysort 혹은 bys command는 이 두 command를 한번에 처리할 수 있게 해줍니다. 

bysort marital (age): gen minage=age[1]

즉, 

bys 카테고리화할변수 (각dataset에서정렬의기준이되는변수): gen 새로운변수명=기준변수[_n]

가 되는 것이지요.