SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 784|回复: 3
打印 上一主题 下一主题

SAS如何提取观测的个数

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-8-12 08:20:26 | 只看该作者

SAS如何提取观测的个数

我想写一个macro,里面要用到一个数据的观测个数那么次的循环,就是:

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

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

恳请大家帮助拉!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-8-12 09:04:29 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-8-13 08:58:44 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-8-13 17:24:51 | 只看该作者

Re: SAS如何提取观测的个数

[code:ldr12vi3]
%macro mac(NEW=,OLD=);
%do i = 1 %to toal;
DATA &NEW;
set &OLD nobs=total;
run;
%end;
%mend;
[/code:ldr12vi3]

这样不是也可以吧?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-3 23:49 , Processed in 0.100299 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表