Macros SAS宏查询

Macros SAS宏查询,macros,sas,ods,Macros,Sas,Ods,我在使用以下%macro进行回归时遇到问题 基本上,我希望它在I=j,I=1到12,j=1到12时运行 %macro reg(num=); %do i=1 %to # %do j=1 %to # proc reg data=ccy.eur; *Specify Currency Data Set Here; model Ft_leadSt&i = Ft_St&j; where &i=&j;

我在使用以下%macro进行回归时遇到问题

基本上,我希望它在I=j,I=1到12,j=1到12时运行

  %macro reg(num=);
    %do i=1 %to #
    %do j=1 %to #
    proc reg data=ccy.eur; *Specify Currency Data Set Here;
    model Ft_leadSt&i = Ft_St&j;
    where &i=&j;
    ods output parameterestimates (persist) =dpara1;
    run;
    %end;
%end;
%mend;
%reg(num=12)
问题是当i=9和j=9时,我的输出似乎停止了。我不知道为什么

数据截图


我将重写此代码,不使用双循环,只使用1条
PROC REG
语句:

  %macro reg(num=);
    proc reg data=ccy.eur; *Specify Currency Data Set Here;
    ods output parameterestimates (persist) =dpara1;
    var FT_leads1 - FT_leads&n FT_St1 - FT_St&n;
    %do i=1 %to #
       _&i: model Ft_leadSt&i = Ft_St&i;
       run;
    %end;
    quit;
  %mend;
%reg(num=12)

确保数据集中有这些变量。

我将在不使用双循环的情况下重写它,并且只使用1个
PROC REG
语句:

  %macro reg(num=);
    proc reg data=ccy.eur; *Specify Currency Data Set Here;
    ods output parameterestimates (persist) =dpara1;
    var FT_leads1 - FT_leads&n FT_St1 - FT_St&n;
    %do i=1 %to #
       _&i: model Ft_leadSt&i = Ft_St&i;
       run;
    %end;
    quit;
  %mend;
%reg(num=12)

确保数据集中有这些变量。

输入的屏幕截图也会有帮助,看起来在'dpara1'为9后没有匹配项。Thans@Alam-很抱歉,输入的屏幕截图也会有帮助,看起来在'dpara1'为9之后没有匹配项。Thans@Alam-很抱歉that@dompass非常感谢-我收到以下错误消息错误:有1条未关闭的%DO语句。宏REG将不会被编译。错误:将编译一个伪宏。1473%reg(num=12)-180警告:宏reg的明显调用未解决。错误180-322:语句无效或使用不当order@wazza2013对不起,我遗漏了一个
%end我为您更新了它。@dompass非常感谢-我收到以下错误消息error:1条未关闭的%DO语句。宏REG将不会被编译。错误:将编译一个伪宏。1473%reg(num=12)-180警告:宏reg的明显调用未解决。错误180-322:语句无效或使用不当order@wazza2013对不起,我遗漏了一个
%end我为您更新了它。