2017-12-05 17 views
0

회귀에 대해 다음 매크로 %에 문제가 있습니다. 기본적으로SAS 매크로 쿼리

, 나는 그 때마다 내가 = J, 그리고 난 = 12과 J 1 = 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) 

를 실행하려는 문제는 내 출력을 중지하는 것입니다 때 = 9, J = 9. 나는 이유를 알아낼 수 없었다? 데이터

enter image description here

enter image description here

+0

'dpara1'이 9 인 후에도 입력이 일치하지 않는 것처럼 보입니다. – Alam

+0

Thans @Alam - 죄송합니다. – wazza2013

답변

3

enter image description here

스크린 샷 나는 이중 루프없이이를 다시 작성 만 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) 

데이터 세트에 해당 변수가 있는지 확인하십시오.

+0

@dompass 매우 감사합니다. 다음 오류 메시지가 표시됩니다. 오류 : 거기에 오류가 있습니다. 1 개의 비공개 DO 문이었습니다. 매크로 REG는 컴파일되지 않습니다. 오류 : 더미 매크로가 컴파일됩니다. 1473 % reg (num = 12) - 경고 : 매크로 REG의 명백한 호출이 해결되지 않았습니다. 오류 180-322 : 정책이 유효하지 않거나 올바른 순서로 사용되지 않았습니다. – wazza2013

+0

@ wazza2013 죄송합니다. '% end;'을 (를) 생략하여 업데이트했습니다. – DomPazz