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显示了第一个日期,而不是每一个独特的日期的第一次出现。
下一个问题是,一旦崩溃了,我需要计算日期的计数,而不是日期本身,这也是我似乎越来越绊倒。
答
或许像
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
你准备计算什么?你的帖子相当混乱。 –
你的新问题似乎要求另一个“崩溃”。 –