2017-02-24 1 views
0

다른 하위 그룹에 대한 계산을 수행하고 다시 결합해야하는 데이터가 있습니다.Stata의 다른 하위 그룹에 대한 Recombine 변수

각 하위 그룹은 가구의 해당 가중치로 정의됩니다 (OECD 동등한 소득 규모).

내가 생성하는 모든 새로운 변수는이 이름 패턴을 다음과

<varname><equivalentweight> 

그래서 동등한 무게 1.3으로 나눈 소득 변수가 income13이 될 것입니다.

다른 하위 그룹에서 계산을 한 후에 결과를 재결합하려고합니다.

이 예에서는 모든 하위 그룹마다 다른 빈곤 임계 값을 계산했으며이 하위 그룹에서 누가 빈약 한 지 말할 수 있습니다. 이제 저는이 결과를 결합하여 인구 가난한 사람을 보여주는 변수를 원합니다. 내가 더 빠른 방법이있을 것 같아요

gen poor=. 
recode poor .=1 if poor13==1 | poor15==1 | poor16==1 | poor18==1 ... 
recode poor .=0 if poor13==0 | poor15==0 | poor16==0 | poor18==0 ... 

:

나는이 작업을 수행하는 방법을 한 가지 방법을 알고있다. 루프를 사용하여 시도했지만 (어제 루프를 코딩하기 시작 했음) 솔루션을 찾을 수 없었습니다.

답변

1

이것에 대해 너무 많이 생각하지 않고 다음 코드는 하위 그룹에서 열악한 관찰을 다시 코딩하는 코드와 동일합니다. 당신의 필요를 충족 할 수

gen poor=. 
recode poor .=1 if inlist(1,poor13,poor15,poor16,poor18, ...) 
recode poor .=0 if inlist(0,poor13,poor15,poor16,poor18, ...) 

또 다른 방법은, 그냥 하위 그룹 아닌 나의 이해는 각 세대가 하나 개의 동등한 무게를 가지고 정확하고 속하는 경우 말했다 모두와 함께

egen poor = rowmax(poor*) 

입니다 이 점에 도달하기 위해 취한 접근법 (하나의 특정 가정과 관련된 새로운 변수 세트를 작성하는 방법)이 지나치게 복잡하지 않다는 것을 분명히하십시오.

+0

이것은 올바른 변수를 나타내는 것처럼 보입니다. 단, 1은 새 변수에 1을 지정하고 0은 0으로 팁을 다시 지정합니다. 'gen poor = inlist (1, poor13, poor15, poor16, poor18)'충분할 수도 있습니다. –

+0

첫 번째 레코딩 코드가 1로 잘못 설정되면 두 번째 레코딩 코드가 아무런 영향을 미치지 않습니다. 말하자면, 나는 어떤 결과가 1이라면 1을, 1이 없지만 0을 만나면 0이라는 결과를 이해합니다. 모두 누락 된 경우 (또는 누락되지 않은 유일한 값은 1이나 0이 아님). 나는 당신의 단일 명령이 그 결과를 제공 할 것이라는 데 동의하며, 1, 0, 그리고 누락이 변수의 유일한 값인 한 내 egen은 비슷하게 할 것이라고 믿는다. –

+0

당신은 맞습니다, 각'recode'는 빠진 것에 한정됩니다. –

관련 문제