SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

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

求助:一個關於循環和MACRO的問題

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-3-22 18:00:51 | 只看该作者

求助:一個關於循環和MACRO的問題

数据集yeartest中有五个变量:var11 var21 var31 var12 var22,
写了以下这个macro去运行proc means
但因为缺少var32,
所以log会显示error:variable var32 not found

小弟想求教各位高手:
这种情况是不是有办法在用macro的时候,
跳过某一个不存在的变量(无法事先知道是缺了哪个变量),
不去计算它,这样log裡就不会出现error了。
还是我是该在循环里改动吗?
谢谢


%macro testscore(myvar);
proc means data=yeartest;
var &myvar;
run;
%mend testscore;

%macro testscore;
%do i=1 %to 3;
%do j=1 %to 2;
proc means data=yeartest;
var var&i&j;
run;
%end;
%end;
%mend testscore;
%testscore;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-3-22 20:33:11 | 只看该作者

Re: 求助:一個關於循環和MACRO的問題

[code:2c21aa8q]%macro testscore(inds);
        options nomprint nosymbolgen;
        %do i=1 %to 3;
                %do j=1 %to 2;
                        %let dsid=%sysfunc(open(&inds,i));
                        %let position=%sysfunc(varnum(&dsid,var&i&j));
                        %let rc=%sysfunc(close(&dsid));
                        %if &position>0 %then
                                %do;
                                        proc means data=&inds;
                                                var var&i&j;
                                        run;
                                %end;
                %end;
        %end;
%mend testscore;

data raw;
        input var11 var21 var31;
datalines;
11 21 31
;
%testscore(raw)[/code:2c21aa8q]
by the way,是不是可以考虑用_numeric_ or var:来表示变量列表呢?写macro的意义好象不大.
[code:2c21aa8q]proc means data=yeartest;
   var _numeric_;
   /* var var:; */
run;[/code:2c21aa8q]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-3-22 21:02:52 | 只看该作者

Re: 求助:一個關於循環和MACRO的問題

[quote:1eamu0o0]by the way,是不是可以考虑用_numeric_ or var:来表示变量列表呢?写macro的意义好象不大.[/quote:1eamu0o0]

如果用_numeric_来list所有的数字变量问题是1.output是巨长巨难看的一行2.以全代偏
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-3-22 22:14:34 | 只看该作者

Re: 求助:一個關於循環和MACRO的問題

Hopewell真神人也!
我得慢慢消化一下才行…..
非常谢谢您!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 15:51 , Processed in 0.076506 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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