Stata在每个ID有多个日期观察值时通过第一个观察日期折叠

Stata在每个ID有多个日期观察值时通过第一个观察日期折叠

问题描述:

我正在使用一个数据集,该数据集已在2800个个人的多个日期上对每个日期(称为ItemNum)进行了购买。每个项目都有自己的行,所以如果某个人在某个日期购买了两件商品,该日期将显示两次。我不在乎在某个日期购买了多少物品(每个日期代表一次旅行),而是2800个人的平均旅行次数(约18230行数据)。我的数据是这样的:Stata在每个ID有多个日期观察值时通过第一个观察日期折叠

+---+----------+-------+---------------------- ---+ 
|ID | Date |ItemNum|  ItemDescript  | 
| 1 |01/22/2010| 1 |Description of the item | 
| 1 |01/22/2010| 2 |Description of other item | 
| 1 |07/19/2013| 1 |       | 
| 2 |06/04/2012| 1 |       | 
| 2 |02/02/2013| 1 |       | 
| 2 |11/13/2013| 1 |       | 
+---+----------+-------+---------------------- ---+ 

在上表中,1人发两趟和三个项目采购(因为两个日期显示),2人取得三趟。我对所有人的平均旅行次数感兴趣,但首先我需要将其折叠到独特的日期。所以,我知道我需要collapse上的日期,但是当我做

collapse (mean) ItemNum (first) Date, by(ID) 

它只是需要的ID显示了第一个日期,而不是每一个独特的日期的第一次出现。

下一个问题是,一旦崩溃了,我需要计算日期的计数,而不是日期本身,这也是我似乎越来越绊倒。

+0

你准备计算什么?你的帖子相当混乱。 –

+0

你的新问题似乎要求另一个“崩溃”。 –

或许像

clear 
input ID str16 dt ItemNum 
1 "01/22/2010" 1 
1 "01/22/2010" 2 
1 "07/19/2013" 1 
end 
generate Date = daily(dt,"MDY") 
egen trip = tag(ID Date) 
collapse (sum) trip, by(ID) 
summarize trip 

    Variable |  Obs  Mean Std. Dev.  Min  Max 
-------------+--------------------------------------------------------- 
     trip |   1   2   .   2   2 

如果您正在寻找在“中庸”是发现了什么 - 一个数字,给出了由2800人做出出游的平均次数(1个个人用有限的样本数据给出)。

你想要做以下事情吗?

collapse (mean) ItemNum, by(ID Date) fast