[問題] SAS-巨集內使用IML產生錯誤訊息
在SAS巨集內使用Proc IML產生下列錯誤訊息
ERROR: (execution) Matrix has not been set to a value.
operation : [ at line 28272 column 99
operands : CUM_DIV_PV, I, DIV
CUM_DIV_PV 758 rows 1 col (numeric)
I 0 row 0 col (type ?, size 0)
搜尋之後仍無法順利排除此錯誤
想請問各位先進如何解決此一問題.
我的巨集是要從原本完整dataset中,
透過輸入公司代碼, 挑出相同公司代碼的較小資料集,
之後在針對此較小的資料進行矩陣運算.
下面簡易列出我的程式, 希望能夠得到先進們的指點, 謝謝!
%MACRO DivPV(Num);
%DO I = 1 %TO &Num;
DATA _NULL_;
set firmlist;
IF _n_= &I Then Do;
CALL SYMPUT('ID', firmid);
END;
RUN;
Data subset;
set fulldata;
where firmid = &ID;
run;
proc IML;
start main;
use subset var _all_ ;
read all into date_S0;
n2 = nrow(date_S0);
cum_div_pv = repeat(0,n2,1);
... 之後的運算都是為了求出cum_div_pv
finish main;
run main;
quit;
%END;
%MEND DivPV;
%DivPV(2138);
run;
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.111.160
推
08/17 00:50, , 1F
08/17 00:50, 1F
→
08/17 00:51, , 2F
08/17 00:51, 2F
→
08/17 00:53, , 3F
08/17 00:53, 3F
→
08/17 00:54, , 4F
08/17 00:54, 4F
推
08/17 11:58, , 5F
08/17 11:58, 5F