2013-03-30 5 views
1

Stata를 사용하여 특정 기준이 충족되면 현재의 것보다 먼저 오는 모든 관찰을 삭제하고 싶습니다.Stata에서이 전에 모든 관측치를 제거하는 방법?

정확하게이 샘플에서는 close 인 관찰 전에 나타나는 모든 관찰을 삭제하고자합니다. 0입니다. 같은

t close id rdate 
MPC 0  MPC 31may2011 
MPC 0  MPC 01jun2011 
MPC 0  MPC 24jun2011 
MPC 37.65 MPC 27jun2011 
MPC 38.7 MPC 28jun2011 
MPC 40.07 MPC 29jun2011 
MPC 0  MPC 30jun2011 
MPC 42.2 MPC 01jul2011 
MPC 42.21 MPC 05jul2011 
MPC 41.89 MPC 06jul2011 
MPC 41.78 MPC 07jul2011 
MPC 41.41 MPC 08jul2011 
MPC 40.1 MPC 11jul2011 
MPC 40.48 MPC 12jul2011 
MPC 39.96 MPC 13jul2011 
MPC 38.64 MPC 14jul2011 
MPC 39.16 MPC 15jul2011 
MPC 39.12 MPC 18jul2011 
MPC 39.74 MPC 19jul2011 
MPC 39.53 MPC 20jul2011 
MPC 40.1 MPC 21jul2011 
MPC 40.57 MPC 22jul2011 
MPC 41.37 MPC 25jul2011 
MPC 43.05 MPC 26jul2011 

뭔가 : by t: drop if _n* < _n & close == 0은 발생해야 할 것입니다 : 이것은 사소한 것 같다하지만 난 단지 그것을 알아낼 수 없습니다

t close id rdate 
MPC 42.2 MPC 01jul2011 
MPC 42.21 MPC 05jul2011 
MPC 41.89 MPC 06jul2011 
MPC 41.78 MPC 07jul2011 
MPC 41.41 MPC 08jul2011 
MPC 40.1 MPC 11jul2011 
MPC 40.48 MPC 12jul2011 
MPC 39.96 MPC 13jul2011 
MPC 38.64 MPC 14jul2011 
MPC 39.16 MPC 15jul2011 
MPC 39.12 MPC 18jul2011 
MPC 39.74 MPC 19jul2011 
MPC 39.53 MPC 20jul2011 
MPC 40.1 MPC 21jul2011 
MPC 40.57 MPC 22jul2011 
MPC 41.37 MPC 25jul2011 
MPC 43.05 MPC 26jul2011 

.

주요 문제는이 기술을 설명하거나 이름을 지정하는 방법을 모르므로 검색 할 수 없다는 것입니다.

어떻게하면됩니까?

답변

3

이것은 압축 될 수 있습니다. 마지막 제로 그럼 당신은

drop if date < lastz 

당신은 구글이 내 기사 "와 비교 ..."할 수 있습니다

egen lastz = max(rdate/(close == 0)), by(id) 

에있는 STATA 저널에서이 기술의 토론. 0이 없으면 자동으로 놓칠 수 있습니다.

+0

흠,'close! = 0' 일 때 0으로 나눕니 까? – Tom

+0

정확히; 고의로 그렇게. 0으로 나누면 누락이 발생하지만 패널의 모든 값이 누락되지 않으면 무시됩니다. 어느 쪽이든 괜찮을 것입니다. –

+0

Stata 13에서는 더 이상 작동하지 않는 것 같습니다. – Tom

0

다음 "해킹"을 사용하여이 문제의 해결 방법을 찾을 수있었습니다. 그러나이를 수행하는 더 빠르고 깨끗한 방법을 고맙게 생각합니다.

* drop all obs before a close price of 0 if occuring * 
sort ticker_id rdate 
gen tagdate = rdate if close == 0 
by ticker_id: egen lasttagdate = max(tagdate) 
drop if rdate <= lasttagdate & !missing(lasttagdate) 
drop tagdate lasttagdate 
관련 문제