将数据集中的观察数转换为宏变量

时间:2013-11-28 12:36:58

标签: sas

我正在尝试确定数据集中的观察数量,然后将此数字转换为宏变量,我可以将其用作循环的一部分。我在网上搜索了答案而没有太多运气。我会发布一些我尝试过的示例代码,但我完全不知道如何处理这个问题。

有人可以帮忙吗?

由于

克里斯

3 个答案:

答案 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;