SAS는

2016-10-10 3 views
0

지금 새 컴퓨터에, 그것은 내가 SQLSAS는

내 매크로 변수를 생성

을 anyomore하지 않습니다 (같은 일주 전) 과 작업하는 데 사용되는 코드에 문제가

proc sql noprint;  
select count(distinct(num_nation)) into :nb_country from AFGp 
; 
%let nb_country = &nb_country; 
select distinct(num_nation) into :pays1 - :pays&nb_country from AFGp; 
select count(*) into :nbvar from variables; 

%let nbvar=&nbvar; 

select variable, var_label, lbl_categ into :var1 - :var&nbvar, :lab1 - :lab&nbvar, :labc1 - :labc&nbvar from variables 
; 
quit; 
run; 

및 VAR로 시작 매크로 변수를 인식하지 못하는 경우,이 매크로 예컨대

%macro testtest(); 

%do j = 1 %to %eval(&nb_country); 

    %do i = 2 %to %eval(&nbvar); 
     proc freq data=AFGp noprint; 
      tables &&var&i./nocol nocum nofreq nowarn out=_TFP_&j._&i; 
      where num_nation = &j; 
     run; 
     %end; 
    %end; 

%mend; 

: 이

%let j=4; 
%put &j &var4 &&var&j; 

반환이 :

4 Female &&var4 

일반적으로 해결하는 데 사용이 코드, 그것은 anyomore하지 않는 이유를 이해하지 않습니다.

당신이 나를 도와, 심지어는 올바른 방향으로 날을 넣을 수 있다면

이 3 시간 지금

답변

1

구문 문제가 혼합 파서를 얻을 수 있습니다, 당신은 다시 (조에 의한 explained로) 마법의 문자열을 실행해야합니다

%*;*;*';*";%*%mend;*); 

이 코드에 문제가되지 않을 수도 있습니다 - 그것은 할 수있다 '부분'코드 블록을 강조 표시하고 실행하여 트리거 (예 : Base SAS)합니다.

+0

감사! 내가 다시 건너 뛰면 분명 도움이 될 것입니다. 실종자에 관해서는; 코드를 붙여 넣을 때 사라졌습니다 (덮어 쓴). 그것은 코드에 있었는데 경고가 없었습니다. –

+1

'; '에 대한 부분을 생략 한 답을 업데이트했습니다. 해피 코딩 :-) –

0

내가 SAS를 다시 시작 저를 차단했습니다, 지금 같은 코드가 작동합니다.

나는 왜 그것이 이전에 작동하지 않았는지 또는 어떤 경우에는 문제가 되더라도 분명히 알 수는 없지만 분명히 SAS의 좌우명은 "의심 스러울 때 다시 시작합니다!"입니다.

+1

가끔 매크로 함수를 숨기는 닫히지 않은 따옴표, 매크로 정의 또는 다른 것을 얻을 수 있습니다. 다시 시작하는 것이 가장 쉬운 방법입니다. – DomPazz

+0

감사합니다. 그것은 미래에 도움이 될 것입니다! –

관련 문제