我在 Stata 工作,拥有列出投资组合(houseID)、年份和月份、stockID 和股票回报的数据。数据跨越数年。看起来像:
我本质上是在尝试隔离数据的子样本。如果他们的第一次投资组合观察是在 2000 年 2 月,我想只保留这些房屋及其数据。在上面的数据中,我想删除 223 和 382 的房屋,只保留 448 的数据。
我的第一次尝试是做类似的事情:
通过 HouseID:保持如果....
但我一直在搞砸它。有没有人有任何想法?谢谢您的帮助!!
我在 Stata 工作,拥有列出投资组合(houseID)、年份和月份、stockID 和股票回报的数据。数据跨越数年。看起来像:
我本质上是在尝试隔离数据的子样本。如果他们的第一次投资组合观察是在 2000 年 2 月,我想只保留这些房屋及其数据。在上面的数据中,我想删除 223 和 382 的房屋,只保留 448 的数据。
我的第一次尝试是做类似的事情:
通过 HouseID:保持如果....
但我一直在搞砸它。有没有人有任何想法?谢谢您的帮助!!
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/