라벨이 macro인 게시물 표시

라벨 다루기: 라벨내 문자열 바꾸기: 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...

변수 첫행에 있는 값을 변수명으로 전환

  ** 첫행의 값 받아서 목록으로 만들기     loc mystrz ""   foreach myvar of varlist D-AE {     loc mystr = `myvar'[1]                // 첫행의 값 받기     loc mystrz: list mystrz | mystr     // 받은 값들을 목록으로 만들기   }   ** 목록 내 한글을 영문으로 바꾸기: 한글은 변수명으로 사용할 수 없자나~~ ㅠ.ㅠ   local mystrz: subinstr local mystrz "사업장" "wp", all   local mystrz: subinstr local mystrz "지역" "lp", all   local mystrz: subinstr local mystrz "임의계속" "vcp", all   local mystrz: subinstr local mystrz "임의" "vp", all   ** 목록을 변수이름으로 전환하기     loc ii 0   foreach myvar of varlist D-AE {     loc ++ii     loc mystr: word `ii' of `mystrz'     gen `mystr' = real(`myvar')   }   drop D-AE