【问题标题】:By household, keep data only if observations started after Feb. 2000 - Stata按家庭,仅在 2000 年 2 月之后开始观察时才保留数据 - Stata
【发布时间】:2014-02-17 14:46:18
【问题描述】:

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

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

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

按HouseID:保持如果....

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

【问题讨论】:

    标签: stata subsampling


    【解决方案1】:
    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/

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    相关资源
    最近更新 更多