我有一個數據集,其格式類似於以下後:SAS計數觀測數以內的按組,刪除一些數據
| Symbol | Date | Time | BB | BO | MIDPRICE |
|--------|----------|------|----|----|----------|
| AAPL | 20130102 | 1 | 2 | 3 | 2.5 |
| AAPL | 20130102 | 2 | 2 | 3 | 2.5 |
| AAPL | 20130102 | 3 | 1 | 3 | 1.5 |
| ... | | | | | |
| AAPL | 20130102 | 100 | 3 | 4 | 3.5 |
| FB | 20130102 | 1 | 3 | 6 | 4.5 |
| FB | 20130102 | 2 | 3 | 6 | 4.5 |
| FB | 20130102 | 3 | 3 | 5 | 4 |
| ... | | | | | |
| FB | 20130102 | 100 | 3 | 4 | 3.5 |
我試圖計算每種按組的觀察次數。
例如,如果數據集按符號排序,我想知道AAPL,FB等有多少個觀察值。在上述情況下,AAPL有四個觀察值,FB有四個觀察值。
我想將結果導出到數據集和稍後的csv文件(我知道如何導出到csv文件,所以它不是這個問題的一部分)。
我一直在線閱讀資料。看來通常有兩種方法。在這個document中,作者說nobs可能不準確,特別是如果您修改了原始數據集。不幸的是,我的情況就是這樣。
data STOCK;
SET RAWDATA; by SYMBOL;
/* Delete those with only one observation */
if MIDPRICE < 3 then delete;
run;
因此,根據本stackoverflow post,唯一的選擇是sql語句:我用下面的代碼刪除了一些意見。但是,該帖子中使用的SQL語句僅計算觀察的總數,而不是按組中的每個觀察值進行計數。
我也想過通過增加一個變量來計數。但看起來這是一個非常糟糕的性能選擇方案。
因此,我想知道是否有任何高性能,同時做到這一點的防錯方式?
我操作的數據集非常大。通常每個數據集有30 Terabytes +,我有成千上萬個用於運行我的代碼。
謝謝!
這不應該是一個SO問題,有幾千個答案可以在線回答這個問題。 http://support.sas.com/kb/24/595.html – Reeza
http://video.sas.com/detail/videos/how-to-tutorials/video/3306906230001/summary-statistics-using-sas- studio?autoStart = true – Reeza
http://support.sas.com/kb/25/279.html – Reeza