我想確定數據集中觀察值的數量,然後將此數字轉換爲可用作循環一部分的宏變量。我在網上搜索了答案,沒有多少運氣。我會張貼我嘗試過的一些示例代碼,但我幾乎不知道如何處理這個問題。將數據集中觀察值的數量轉換爲宏變量
有人可以協助嗎?
感謝
克里斯
我想確定數據集中觀察值的數量,然後將此數字轉換爲可用作循環一部分的宏變量。我在網上搜索了答案,沒有多少運氣。我會張貼我嘗試過的一些示例代碼,但我幾乎不知道如何處理這個問題。將數據集中觀察值的數量轉換爲宏變量
有人可以協助嗎?
感謝
克里斯
這就是:
創建宏變量:
data _null_;
set sashelp.class;
call symput("nbobs",_N_);
run;
見結果:
%put &nbobs;
使用它:
data test;
do i = 1 to &nbobs;
put i;
end;
run;
SAS分別存儲數據集信息,例如觀察次數,所以關鍵是訪問這些信息而不必讀取整個數據集。 下面的代碼將做到這一點,if 0部分從不是真的,所以數據集不會被讀取,但是信息是。
data _null_;
if 0 then set sashelp.class nobs=n;
call symput('numobs',n);
stop;
run;
%put n=&numobs;
您也可以從dictionary.tables得到這樣的:
proc sql noprint;
select nobs into :nobs
from dictionary.tables
where libname='YourLibrary' and memname='YourDatasetName';
quit;