2014-07-07 3 views
0

Stata에서 패널 식별자와 시간 변수 (및 관심있는 측정 항목)가있는 패널 데이터 세트가 있습니다. 필자는 패널 ID별로 특정 기간 동안 메트릭 중 하나의 평균과 동일한 변수를 생성하려고합니다. 다음과 같이하면 원하는 것을 수행 할 수 있지만 변수를 수십 년 동안 만 채울 수 있습니다. 나는 그 결과가 모든 년 동안 사람이 살기를 바랍니다. 나는 데이터 정렬을 포함하는 배심원 단련 된 솔루션을 가지고 있지만보다 우아한 접근 방법이 있는지 확인하고 싶다.Stata : ID 및 하위 집합의 평균

sort id year 
egen x_natural = mean(x) if year >= 2005 & year <= 2007, by(id) 
sort id x_natural year 
replace x_natural = x_natural[_n-1] if id == id[_n-1] 

답변

4

한가지 방법

egen x_natural = mean(x/(year >= 2005 & year <= 2007)), by(id) 

이고 다른 부수적

egen x_natural = mean(cond(year >= 2005 & year <= 2007, x, .)), by(id) 

,

year >= 2005 & year <= 2007 

사용하여 계산 될 수있다

inrange(year, 2005, 2007) 

이 지역을 체계적으로 소개하는 설문 조사는 http://www.stata-journal.com/article.html?article=dm0055을 참조하십시오. 이제는 누구나 .pdf로 액세스 할 수 있습니다. 해당 내용은 http://www.stata-journal.com/sjpdf.html?articlenum=dm0055

+0

흥미 롭습니다. 한 가지 질문 : 첫 번째 제안에서 어떤 일이 벌어지고 있습니까? 내 범위에서 x를 1로,이 변수 밖에있을 때는 0과 같은 이진 변수로 x를 나눈 것으로 보입니다. 왜 이것이 바깥의 해에는 오류를 반환하지 않습니까? –

+0

내 논문에 모두 설명되어 있습니다. 내가 강조한대로 접근 할 수있어 읽는 것이 좋습니다. –

+0

아 하. 나는 지금 본다. 매우 도움이된다. 감사! –