我在Stata工作并拥有列出投资组合(houseID),年份和月份,stockID和股票收益的数据。数据跨越了数年。看起来像:
我基本上试图隔离数据的子样本。如果他们的第一次投资组合观察是在2000年2月,我想只保留那些房屋及其数据。在上述数据中,我想放弃房屋223和382,只保留448的数据。
我的第一次尝试是做一些事情:
通过HouseID:等待....
但我一直在喋喋不休。有没有人有任何想法?谢谢你的帮助!!
答案 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/