SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 618|回复: 0
打印 上一主题 下一主题

请问大家macro的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-9-13 22:15:52 | 只看该作者

请问大家macro的问题

请问各位前辈
我有一段SAS程序是这样的
%let Infinity=1e30;
%let eps=1e-30;

%macro RollGibbs(dsIn, qOut=qOut, parmOut=parmOut, nSweeps=100,
        qDraw=1, varuDraw=1, regDraw=1, varuStart=0.001, cStart=.01, printLevel=0,
        cLower=0, cUpper=&Infinity);
proc iml;
        start main;
        reset printadv=1;
        call streaminit(1234);        *        Initialize the random number generators;
        reset storage=this.imlstor; load;        *        Reload necessary subroutines;
        show modules;

        *        Read in data;
        use &dsIn;
        if &qDraw=1 then do;
                read all var {p};

以上是一个宏
data vix;

%RollGibbs(vix, qOut=qOut, parmOut=parmOut, nSweeps=100,
        qDraw=1, varuDraw=1, regDraw=1, varuStart=0.001, cStart=.01, printLevel=0,
        cLower=0, cUpper=&Infinity);

以上是全部的程序
但在编译后,log却出现

NOTE: IML Ready
NOTE: Module MAIN defined.
NOTE: New storage library = THIS.IMLSTOR
ERROR: P is not in the scope of variables for the data set.
而且在这之后,输入进去的vix数据都被刷掉了
这是怎么回事呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-3 22:06 , Processed in 0.073471 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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