我正在尝试确定数据集中的观察数量,然后将此数字转换为宏变量,我可以将其用作循环的一部分。我在网上搜索了答案而没有太多运气。我会发布一些我尝试过的示例代码,但我完全不知道如何处理这个问题。
有人可以帮忙吗?
由于
克里斯
答案 0 :(得分:3)
SAS分别存储数据集信息,例如观察数量,因此关键是访问此信息而无需读取整个数据集。 以下代码将执行此操作,if 0部分永远不会为true,因此不会读取数据集,但信息是。
data _null_;
if 0 then set sashelp.class nobs=n;
call symput('numobs',n);
stop;
run;
%put n=&numobs;
答案 1 :(得分:1)
你也可以从dictionary.tables中得到它:
proc sql noprint;
select nobs into :nobs
from dictionary.tables
where libname='YourLibrary' and memname='YourDatasetName';
quit;
答案 2 :(得分:0)
这是:
创建宏变量:
data _null_;
set sashelp.class;
call symput("nbobs",_N_);
run;
见结果:
%put &nbobs;
使用它:
data test;
do i = 1 to &nbobs;
put i;
end;
run;