我有一個MACRO,它需要一個數據集D並且基本上輸出k個不相交的數據集D_1,...,D_k。值k不固定,取決於事先未知的數據屬性。不過,我們可以假設k不大於10。PROC GROUP with GROUP命令非常慢。爲什麼?解決方法可行嗎?
數據集D包含變量x和y,我想爲每個D_i疊加x和y的線/散點圖。在我的具體情況下,x是時間,我希望看到每個D_i的輸出y並將它們相互比較。
希望這是明確的。
我該怎麼做?我事先不知道k,所以我需要某種%do循環。但似乎並沒有我可以在「proc sgplot」中放置一個do循環。
我可能會製作一個包含很長一系列命令的宏,但我不確定。
如何在SAS中覆蓋這些圖?
編輯:我包括參考爲什麼我試圖避免使用GROUP子句做一個PROC SGPLOT。我嘗試了下面的代碼,計算時間超過了30分鐘(之後我取消了計算,所以我不知道實際需要多長時間)。 PROC SQL運行速度很快,程序停留在PROC SGPLOT上。
proc sql;
create table dataset as select
date, product_code, sum(num_of_records) as total_rec
from &filename
group by product_code, data
order by product_code, date
;
quit;
PROC SGPLOT Data = dataset;
scatter x = date y = total_rec/group=product_code;
title "Total records by product code";
run;
該文件中觀察值的數量爲76,000,000。
你能舉一個例子'&filename'數據集 - 顯示product_Code等的頻率嗎?只是'數據mydata;做product_code = 1到10000;日期= 1到7600; (某種方式來產生明智的x y);輸出;結束;運行;'或者沿着這些線路。與每個產品代碼約有多少個產品代碼和多少行相匹配的內容。 – Joe
我遇到了一個簡單的情況,有兩個產品代碼,其中一半數據有一個產品代碼,另一半有另一個產品代碼。這夠了嗎? – Lepidopterist
如果它再現您的問題,那就很好。某些需要30-60分鐘或其他需要運行的物品才能使速度更快。 – Joe