7월, 2014의 게시물 표시

특정 문자열을 포함한 변수들만 처리하기

// 예를 들어, 이런 경우가 있죠... // e_k 라는 문자열이 들어간 변수는 모두 금액변수인데, 그 단위가 "원"인데, 이런 변수들을 모두 "만원"단위로 바꾸고 싶은 경우.. 일일히 그 변수를 찾아서 바꾸기 귀찮을때.... lookfor e_k   // 이렇게 실행하면, 그 결과, 정확하게는 변수목록을 스타타는 macros로 문자열로 반환함..... return list   // 요걸로 확인해도 되고... 여기서 확인해 보면, 매크로 이름은  r(varlist) loc mylist = r(varlist)    // 결과를 받아서 로컬로 지정하고..           if "`mylist'" == "." {  // 해당변수가 아주 없는 경우의 결과값....               di  "찾는 문자열을 포함한 변수가 없습니다."           }           else {        // 최소 1개 이상 있는 경우             foreach myitem of loc mylist {                 replace `myitem' = `myitem'/10000             }           } ~~ 끝...ㅋ 즐거운 여름 휴가를 보내시길....~~

데이터의 변수이름과 라벨을 받아서 목록으로 만들기

* 오늘은 내가 갖고 있는 데이터에 있는 변수명과 그 설명인 라벨을 하나의 목록으로 만드는 것을 해 보겠습니다. * 사실, 이것은 스타타 프로그램에서는 언제든 확인할 수 있는 것이기에 큰 필요성이 없어 보이지만, 가끔은 여러 개의 파일의 통합작업을 위해 필요한 경우가 있습니다. * 여튼 필요한 것 같으면 내용을 보시길~~ ㅋ // 먼저, 파일명이 mydata.dta // 그 안에 있는 변수로  var1 var2 var3 이 있다고 하자...(없으면 말고...ㅋ) // 변수라벨로 각각  변수하나, 변수둘, 변수셋 이라고 하자.... loc myvarname = ""   // 변수명 목록을 만들기 위한 loc myvarlabel = "" foreach vv of varlist  _all  {   // 위에서 포함된 변수를 알고 있지 못한 경우 모든 변수를 지정     loc mylab :   var lab `vv'     loc myvar = "`vv'"      // 이건 사실 불필요할 수도 있지만.....    loc myvarname = "`myvarname' `myvar'"    loc myvarlabel = "`myvarlabel' `mylab'" }    // 이러면 끝~~ // 확인해보고 싶죠...!! di  "`myvarname'" di "`myvarlabel'" // 이렇게 해서 만든 목록으로 필요한 곳에 뿌릴수도 있고, 어떤 작업을 할 수도 있겠죠!! // 참고로 변수의 저장유형을 목록으로 만들고자 한다면... loc mytype: type 변수명 // 포맷목록도 원한다면,,, loc myfmt: format 변수명   * 쉽죠 잉~~!