作者rinchen (加油!加油!!)
站內Statistics
標題Re: [程式] SAS如何刪除變數值小於5的觀測值
時間Wed May 4 14:12:50 2011
※ 引述《linlowmoon (ya!)》之銘言:
: 請問
: 我的資料是panel
: 長成下面這樣
: company year ta roa
: 1 2010 500 0.4
: 2009 400 0.5
: 2008
: 2007
: 2006
: 2005
: 2 2010 500 0.4
: 2009 400 0.5
: 2008 300 0.4
: 2007 200 0.5
: 2006 100 0.4
: 2005 0 0.5
: 請問我想刪除 任何變數(ta or roa)樣本值<5的公司(company)
: 那應該怎麼寫啊?
: 謝謝
PROC SQL ;
CREATE TABLE new AS
SELECT *
FROM old
GROUP BY company
HAVING min(count(ta),count(roa)) >=5 ;
QUIT;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.112.236
※ 編輯: rinchen 來自: 140.112.112.236 (05/04 14:14)
1F:推 west1996:推!!我耍笨繞了一圈......... 05/04 14:41
2F:推 imaltar:having 真好用 05/04 14:42
3F:→ linlowmoon:謝謝 請問可以解釋一下嗎?thanks!! 05/04 21:06
4F:推 linlowmoon:請問我要每個變數樣本大於5 可以寫成下面這樣嗎? 05/04 21:45
5F:→ linlowmoon:having count(*)>=5 ; 05/04 21:45
6F:→ rinchen:應該是可以直接用count(*)>=5 ^^ 05/05 17:05
7F:推 west1996:直接用count(*)可能會出事,因為count(*)是去看group by 05/05 17:13
8F:→ west1996:後剩下的變數整體來看,沒有missing的筆數,但是你有一 05/05 17:13
9F:→ west1996:個year變數在資料裡面卻不屬於group by裡面的變數,這樣 05/05 17:14
10F:→ west1996:count(*)出來會變成每一個company都被選進去了。 05/05 17:14
11F:→ west1996:應該是這樣吧...... 05/05 17:15
12F:→ rinchen:剛剛看了一下,真的直接用count(*)會有問題 05/05 21:43
13F:→ rinchen:因為year在內,所以group by之後的count會算到year的個數 05/05 21:45
14F:→ rinchen:而不是變數的個數...... 05/05 21:47
15F:推 linlowmoon:喔喔~~我懂了 感謝三位熱心的高手^^ 05/05 22:17