0이라고 코딩이 안되어 있고 결측치( . ) 로 코딩이 되어 있으면 gen A=a+b 이런 식으로 변수 만들때 결측치 있는 것들은 다 빠져버린다.
여러 번수를 더하는 거라면 egen A=rowtotal (a b c d ...) 이런 식으로 하는 방법이 있는데 더하기 빼기가 섞여있다면,
다음 두가지 방법이 있다.
1. cond 사용
2. 결측값을 0으로 변환 후 사용
1. "cond"라는 조건명령어를 넣어주는 방법이 있다.
cond의 문법은 아래와 같다. condition;조건의 약자.
cond ( x, a, b [,c] )
- x 가 참이면 a 반환 ( 여기서 x 는 변수명이 올수도 있고 x>30 이런 식으로 조건을 넣을 수도 있다)
- x 가 거짓(또는 0)이면 b 반환
- x 가 missing 이면 c 반환 (c가 주어지지 않았고 x가 missing일 경우 a 반환)
이 cond를 사용해 더하고 빼기를 한다면 두가지 방법으로 사용할 수 있다.
a-b 라는 두 변수의 계산의 결과를 x라는 변수로 만드는 예이다.
(1) gen x = cond(a, a, 0, 0) - cond(b,b,0,0)
설명 : a라는 변수가 참이면(0이나 결측이 아니면) a값을 그대로 반환, a라는 변수가 0이면 0 반환, a가 missing이면 0반환)
(2) gen x = cond (missing(a), 0, a) - cond(missing(b),0,b)
설명 : a가 missing인것이 참이면 0 반환, 그게 아니라면 a 반환
2. 결측치를 아얘 0으로 바꿔버린 후 사용
mvencode 또는 replace나 recode 를 사용해 결측치를 0으로 변환후 gen x=a-b 명령
(1) mvencode a b
(2)
replace a=0 if a==.
replace b=0 if b==.
(3) recode a b (.=0)
recode가 두루두루 쓰여서 편한 듯.
'Stata' 카테고리의 다른 글
stata 에서 cdf 그리기 (누적확률분포) (0) | 2020.05.10 |
---|---|
stata 분위별 평균값(평균소득) 구하기 - 백분위 천분위 등 (0) | 2020.04.03 |
Stata 줄바꾸기 (do file editor에서 명령어 여러 줄로 쓰기) (0) | 2018.05.18 |
[패널데이터] 고유 관측치(예를 들면 개인 및 가구 id)별 개수 보기 (0) | 2018.01.24 |
gini decomposition with weight in stata 지니계수 분해에 가중치 적용하기 (0) | 2018.01.16 |
댓글