1

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

我的数据

我本质上是在尝试隔离数据的子样本。如果他们的第一次投资组合观察是在 2000 年 2 月,我想只保留这些房屋及其数据。在上面的数据中,我想删除 223 和 382 的房屋,只保留 448 的数据。

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

通过 HouseID:保持如果....

但我一直在搞砸它。有没有人有任何想法?谢谢您的帮助!!

4

1 回答 1

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/

于 2014-01-26T22:03:10.280 回答