按家庭,只有在2000年2月之后开始观察时才保留数据 - Stata

时间:2014-01-26 21:24:08

标签: stata subsampling

我在Stata工作并拥有列出投资组合(houseID),年份和月份,stockID和股票收益的数据。数据跨越了数年。看起来像:

My data

我基本上试图隔离数据的子样本。如果他们的第一次投资组合观察是在2000年2月,我想只保留那些房屋及其数据。在上述数据中,我想放弃房屋223和382,只保留448的数据。

我的第一次尝试是做一些事情:

通过HouseID

:等待....

但我一直在喋喋不休。有没有人有任何想法?谢谢你的帮助!!

1 个答案:

答案 0 :(得分:2)

clear all
set more off

input ///
houseid year month
223 1997 1
223 1997 2
223 1998 1
223 2000 1
223 2000 2
223 2000 3
448 2000 2
448 2000 3
end

list

bysort houseid (year month): keep if year[1] == 2000 & month[1] == 2

list

keep将删除不需要的观察结果。相反,您也可以标记感兴趣的子样本并使用它。例如

bysort houseid (year month): gen ok = year[1] == 2000 & month[1] == 2

<some command> if ok

有关更高级的日期操作,请尝试使用日期变量。参见例如

http://www.stata.com/help.cgi?dates_and_times

http://www.stata.com/support/faqs/data-management/handling-date-information/