2016-03-21 153 views
0

我正在使用一個數據集,該數據集已在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

你的新問題似乎要求另一個「崩潰」。 –

回答

1

或許像

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個個人用有限的樣本數據給出)。

1

你想要做以下事情嗎?

collapse (mean) ItemNum, by(ID Date) fast 
相關問題