라벨 다루기: 라벨내 문자열 바꾸기: macro 활용
// 스타타를 사용하다보면, 새로운 변수들을 생성한다.
// 또한 변수명은 축약해서 쓰지만, 변수가 의미하는 바를 구분하기 위해 라벨을 사용한다.
// 오늘 해 볼 것은 기존 유사한 변수들에 대한 유사한 작업을 반복해서 하는 경우가 있다.
// 이때, 새로운 변수들을 구분하기 위해 라벨을 붙이게 되는데, 기존 변수들의 라벨과 일부 문자만 다르고 내용은 동일한 경우 일일이 라벨문을 작성하는 것은 짜증나는 일이다. 왜냐면 단순작업이니까.....
// 먼저, 다음과 같은 변수들이 이미 있다.
lab var rgn_base "납세지역(기초)"
lab var taxrev "세수(기초)"
lab var prn_all "납세인원(전체,기초)"
lab var prn_part "납세인원(세액>0,기초)"
gen rgn_larg = int(rgn_base/100) // rgn_base는 총 네자리 숫자인데, 이중 앞의 두자리는 광역을 의미하는 코드이고, 뒤의 2자리는 기초지역을 의미하는 코드이다. 그래서 앞의 두자리를 떼내어 rgn_larg이라는 광역지역을 의미하는 변수를 새로 만들었다...
lab var rgn_larg "납세지역(광역)"
sort rgn_larg // 광역코드를 기준으로 정렬하고...
// 기초단위의 세수,납세인원1,2변수의 합계값들에 대한 새로운 변수를 생성하고, 기초지역 관련 변수의 라벨에 있는 "기초"라는 문자를 "광역"으로 바꾸려고 한다....
foreach myvar of varlist taxrev prn_all prn_part { // 기초단위의 세수,납세인원1,2변수 순환
by rgn_larg: gen l`myvar' = sum(`myvar') // 기초단위변수명 앞에 L만 붙여서 합계값 계산
by rgn_larg: replace l`myvar' = l`myvar'[_N]
loc mystr: var l `myvar' // 작업대상 기초단위의 변수 라벨 받고
loc mystr: subinstr local mystr "기초" "광역" // 포함된 문자 '기초'를 '광역'으로 수정하고
lab var l`myvar' "`mystr'" // 새롭게 만든 광역단위 변수에 라벨로 붙인다..~~끝.
}
// 또한 변수명은 축약해서 쓰지만, 변수가 의미하는 바를 구분하기 위해 라벨을 사용한다.
// 오늘 해 볼 것은 기존 유사한 변수들에 대한 유사한 작업을 반복해서 하는 경우가 있다.
// 이때, 새로운 변수들을 구분하기 위해 라벨을 붙이게 되는데, 기존 변수들의 라벨과 일부 문자만 다르고 내용은 동일한 경우 일일이 라벨문을 작성하는 것은 짜증나는 일이다. 왜냐면 단순작업이니까.....
// 먼저, 다음과 같은 변수들이 이미 있다.
lab var rgn_base "납세지역(기초)"
lab var taxrev "세수(기초)"
lab var prn_all "납세인원(전체,기초)"
lab var prn_part "납세인원(세액>0,기초)"
gen rgn_larg = int(rgn_base/100) // rgn_base는 총 네자리 숫자인데, 이중 앞의 두자리는 광역을 의미하는 코드이고, 뒤의 2자리는 기초지역을 의미하는 코드이다. 그래서 앞의 두자리를 떼내어 rgn_larg이라는 광역지역을 의미하는 변수를 새로 만들었다...
lab var rgn_larg "납세지역(광역)"
sort rgn_larg // 광역코드를 기준으로 정렬하고...
// 기초단위의 세수,납세인원1,2변수의 합계값들에 대한 새로운 변수를 생성하고, 기초지역 관련 변수의 라벨에 있는 "기초"라는 문자를 "광역"으로 바꾸려고 한다....
foreach myvar of varlist taxrev prn_all prn_part { // 기초단위의 세수,납세인원1,2변수 순환
by rgn_larg: gen l`myvar' = sum(`myvar') // 기초단위변수명 앞에 L만 붙여서 합계값 계산
by rgn_larg: replace l`myvar' = l`myvar'[_N]
loc mystr: var l `myvar' // 작업대상 기초단위의 변수 라벨 받고
loc mystr: subinstr local mystr "기초" "광역" // 포함된 문자 '기초'를 '광역'으로 수정하고
lab var l`myvar' "`mystr'" // 새롭게 만든 광역단위 변수에 라벨로 붙인다..~~끝.
}
댓글
댓글 쓰기