라벨이 라벨인 게시물 표시

그래프 그리기 08:= 값라벨을 하나의 관측치에만 붙이기

이미지
// 단독직입적으로 시작합니다.... // 다음과 같은 자료가 있습니다. // 21개 등급(grd)별로 그 순위(gwon)가 있습니다. 여기서 보여지는 것은 한 개인만을 보여주고 있지만, 예를 들어 여러 명의 각 등급별 순위가 있는 그래프를 그리기 위한 것이 오늘 소개하는 내용입니다. 사실, 이러한 경우 범례(legend)를 이용하여 구분하는 것은 아래와 같이 매우 복잡합니다. 무슨 지하철 노선도 같네요...그게 아닌데 ㅠㅠ 그래서 각 관측치별로 값을 라벨로 넣어서 구분하는 방법도 있습니다... twoway  (connected gwon grd if model == "BASE" , sort mlabel(model) mlabp(12))  하지만, 이것도 여러 개를 그리면 너무 복잡해서리~~   twoway (connected gwon grd if model == "BASE" , sort mlabel(model) mlabp(12)) (connected gwon grd if model == "S1-21", sort mlabel(model)) ........ 그런데 이렇게 그리면 어떤가요?!!^.^  이렇게 하기 위해선 하나의 새로운 변수를 만듭니다. 이때, 21개 등급에 해당하는 관측치에만 값을 넣는게 핵심입니다. gen mymod = model if grd == 21 보시는 바와 같이, grd가 21인 경우에만 그래프의 라벨로 사용하고 싶은 값을 넣으면 됩니다.   그런다음, 다음과 같이 라벨로 쓸 변수로 새롭게 만든 변수를 이용하면 되죠^^ twoway   (connected gwon grd if model == "BASE", mlabel( mymod )  mlabp(3) sort)  (connected gwon grd if model == "S1-21", mlabel( ...

인용부호가 있는 목록 처리: 값라벨 매크로

// 목록을 처리할때, 가장(?) 어려운 것이 아마도 인용부호가 있는 경우일 것입니다. // 이러한 경우가 발생하는 경우는 스타타에서 값라벨이 여기에 해당합니다.      // 값라벨과 유사한 경우가 그래프의 레전드인데, 예전에 처리한 적이 있죠!!^^ // 여튼, 값라벨과 그래프의 레전드는 다음과 같은 형식입니다..   숫자1 "문자1" 숫자2 "문자2" ...... ==> 1 "임금" 2 "비임금" 3 "전체" ....... //다음과 같은 상황을 생각해 봅시다. // 값이 1 2 3 이 있는 변수 sim이 있는데  각각의 값라벨로 // 1일때, "모형1", 2일때 "모형2" 3일때 "모형3"을 설정해야하는 경우.... // 이런 경우 매크로를 짜봅시다....ㅋ   loc sname = ""   loc Model = "모형1 모형2 모형3"   loc ii 0   // 모델순번   foreach mysim of loc Model {     loc ++ii     loc sname = `"`sname' `ii' "`mysim'""'   // 이 부분이 어렵죠....ㅋ   }      // 이 루프가 끝나면, 목록이 만들어져 있을터이고, 그 목록을 확인하고 싶으면,  di `"`sname'"'      // 다음으로 그 목록을 값라벨로 설정해서, 변수 sim에 적용하고 싶다면....   lab def myname `sname'    // 여기서 위의 di `"`sname'"' 와 다르다는 것이 핵심..ㅋ   lab val sim myname 

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

* 오늘은 내가 갖고 있는 데이터에 있는 변수명과 그 설명인 라벨을 하나의 목록으로 만드는 것을 해 보겠습니다. * 사실, 이것은 스타타 프로그램에서는 언제든 확인할 수 있는 것이기에 큰 필요성이 없어 보이지만, 가끔은 여러 개의 파일의 통합작업을 위해 필요한 경우가 있습니다. * 여튼 필요한 것 같으면 내용을 보시길~~ ㅋ // 먼저, 파일명이 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 변수명   * 쉽죠 잉~~!