연습
-
변수(값) 다루기
[LOOP] 일련번호를 생성하고 그 순서대로 루프 돌리기
** 예를 들어, btime에 값이 입력된 경우, 해당 시점으로부터 1년 기간 동안의 mba를 합산하여 btime이 입력된 시점에만 합계액을 넣는 것이다. 어려워 보이죠? 늘 듣는 말이지만, 할 줄 모르면 어렵고, 알면 쉬운.... ** 먼저, 각 연월에 대해 스타타가 정의한 고유의 값을 받아내자... 이렇게 하지 않아도 되기는 하지만, 이게 좀 더 폼이 날 것 같다... gen yrmon = ym(year, mon) // 각 연월에 대한 일련번호 ** 다음으로 btime에 입력된 값이 있으면, mytime에 1이라는 숫자를 박자.. gen byte mytime = 1 if btime!=. ** 그런 다음 각 개인(sn)별로 각 시점에 일련번호를 박자.... by sn (year mon), sort: r..
-
변수(값) 다루기
변수의 라벨문 내 특정문자 바꾸기2
두번째 열에 각 변수들에 대한 라벨이 있다. 하지만, 여기서 "w06" 등과 같은 문자들이 들어있어서 알아보기가 힘들고, 전체적으로 보기에도 좋지 않다. 이처럼 라벨 안에 있는 특정 문자열을 바꿀 때 사용할 수 있는 코드문은 다음과 같다. foreach myvar of varlist _all { // 데이터 안에 있는 모든 변수들에 대헤 돌리고, foreach tstr in w06 w05 w02 { // 바꿀 문자열들에 대해 돌리고 loc mystr: var l `myvar' // 변수에 적용된 라벨을 mystr이라는 로컬 변수로 받고 loc mystr: subinstr local mystr "`tstr' " "" // 그 안에 문자열루프에 따른 문자를 공백으로 바꾸고lab var `myvar' "`my..
-
변수(값) 다루기
변수명 바꾸기 1
// 복잡한 변수명들을 바꿔보자.... //원본은 다음과 같다. // 물론 지금도 나름의 규칙성은 있다. 하지만 너무 길고 규칙성의 순서도 좀 바꾸고 싶다... rename Pub* P*rename TI* T*rename *BP_cpi_N* *BP_cpi_20_N*rename *BP_cpi_5_N* *BP_cpi_25_N*rename *BP_cpi_10_N* *BP_cpi_30_N*rename *BP_cpi_* *BC*rename *BP_* *BA*rename P_*_N* PN*[2]_*[1]rename T_*_N* TN*[2]_*[1]rename *_ind* **_ind rename *_ind *_In // 결과는 아래와 같다.
-
변수(값) 다루기
변수에 있는 값들을 목록으로 받아내기: levelsof
foreach mysex in 1 2 { // 성별 루프 forvalues myeact = 11(1)15 { // 종사상지위별 루프 // 성과 종사상지위에 따른 집단 내 구성원들의 연령구성은 다양할 것임. // 그래서 각 집단 내 구성원들의 연령 목록이 필요함^^ levelsof realage if gend == `mysex' & eactpp == `myeact' , local(myages) foreach myage of local myages { // 연령 svy: mean pen_part if gend == `mysex' & eactpp == `myeact' & realage == `myage' } // 연령 } // 종사상지위} // 성별 // 핵심은 빨간 색^^
-
변수(값) 다루기
기존 변수에 있는 값을 변수명으로 전환
** 첫행의 값 받아서 목록으로 만들기 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 "..
리스트 예시: 게시물이 존재할 경우 3건을 노출합니다.
-
활용팁
가구 내 배우자 찾기(고급 매칭)
hid==100인 가구에 52세 여자(3번 관측치)의 남성 배우자 후보는 1번(53세), 2번(32세), 5번(57세)임. hid==200인 가구에 54세 여자(6번 관측치)의 남성 배우자 후보는 7번(64세), 8번(60세), 9번(50세)임. 나이 차이가 가장 적은 남성을 배우자로 식별하고, 동일한 가족 아이디(fid)를 부여하고자 함 즉, hid==100인 가구에서는 3번 관측치와 1번 관측치, hid==200인 가구에서는 6번 관측치와 9번 관측치 1단계: 가구 내 배우자가 있는 남자와 여자의 순번을 정의 // 배우자 있는 여자|남자의 수와 순서 gen byte sp1 = 1 if gtype==92 & gend==1 & wed_sta==2 by hid,sort: gen sp1n=sum(sp1) i..
-
그래프 다루기
코로나19 일일 확진자와 취업자수 추이:2020.1.~2022.6.
자료: 1) 코로나19 일일 확진자(명) 현황: 공공데이터포털(https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15043378)의 자료 2) 취업자수(만명): 경제활동인구조사(통계청) 월별자료 * 확진자수 그래프를 두 개의 가로축을 활용하는 아이디어는 연합뉴스, “[그래픽]코로나19 사회적 거리두기 변화” , 2022.4.15. 기사(https://www.yna.co.kr/view/GYH20220415000200044)를 참조하였음.
-
그래프 다루기
코로나19 확진자와 사회적 거리두기 추이
주: 1) 사회적 거리두기 단계=1,000×단계를 의미함 자료: 1) 코로나19 확진자 현황: 공공데이터포털(https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15043378)의 자료를 직접 가공함(다운로드 일시: 2021.10.29.) 2) 사회적 거리두기 단계: 국회의원자료와 보건복지부 질병청의 보도자료 참고 3) 취업자수: 경제활동인구조사(통계청) 월별자료를 직접 가공 및 작성함. 4) '20년 1차 ~ '21년 2차 등은 코로나19 대응을 위한 정부의 추가경정예산을 의미함 # stata 코드는 나중에 올립니다...지금 너무 바빠서~~ ㅠ
갤러리 예시: 게시물이 존재할 경우 4건을 노출합니다.