SAS中文论坛

标题: SAS如何提取观测的个数 [打印本页]

作者: shiyiming    时间: 2010-8-12 08:20
标题: SAS如何提取观测的个数
我想写一个macro,里面要用到一个数据的观测个数那么次的循环,就是:

%d i=1 %to nobs( that is number of observations.)

当然这个macro的一个参数就是某个data啦。但是如何找到对应数据集的这个nobs呢,我没法把它写成一个代表数字的变量呀。不知道我把问题描述清楚了没有,向板上各位高手求助啦!

恳请大家帮助拉!
作者: shiyiming    时间: 2010-8-12 09:04
标题: Re: SAS如何提取观测的个数
[code:qqyayegi]%macro test(dsname);
        %let dsid=%sysfunc(open(&dsname,i));
        %let nobs=%sysfunc(attrn(&dsid,nlobs));
        %put NOTE:*** NOBS=&nobs ***;
        %let rc=%sysfunc(close(&dsid));
%mend;
%test(sashelp.class)
proc print data=sashelp.class;
run;[/code:qqyayegi]
作者: shiyiming    时间: 2010-8-13 08:58
标题: Re: SAS如何提取观测的个数
[code:35leqoxb]%macro em_im (dsname);
        /***********
        我是想通过一些代码得到针对参数里的ds 的观测值数量;
        code
        *这个code能够最后实现把观测值数量作为一个数存为num_ods;
        ************/
        %let dsid=%sysfunc(open(&dsname,i));
        %let num_obs=%sysfunc(attrn(&dsid,nlobs));
        %let rc=%sysfunc(close(&dsid));
        %do i=1 %to &num_obs;
                /************
                以下是我想进行的一些编程
                *********/
                %put NOTE-EXECUTE &i TIME;
        %end;
%mend;
%em_im(sashelp.class)[/code:35leqoxb]
作者: shiyiming    时间: 2010-8-13 17:24
标题: Re: SAS如何提取观测的个数
[code:ldr12vi3]
%macro mac(NEW=,OLD=);
%do i = 1 %to toal;
DATA &NEW;
set &OLD nobs=total;
run;
%end;
%mend;
[/code:ldr12vi3]

这样不是也可以吧?




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2