2014-12-05 3 views
0

SAS에서 템플릿과 sgrender를 사용하여 다른 클래스 변수를 기반으로 히트 맵을 만듭니다. 클래스 변수의 값을 기준으로 클래스 변수를 기반으로 제목을 업데이트 할 때마다 결과물을 출력하고 싶습니다. 지금까지, 내 ​​코드는 다음과 같다 (그것은 내가 그것을 말한다면 문자열 제목을 인쇄,하지만 난 그것을 변수에 따라 다양하게 얻을 수 없다) :제목을 SAS 출력 그래프에 추가

proc template; 
    define statgraph heatmapparm; 
    begingraph; 
    entrytitle 'INSERT TITLE HERE';  *Update title here based on classVar; 
     layout overlay; 
     heatmapparm x=magX2 y=magZ2 colorresponse=percent/colormodel=(blue yellow red) 
      name="heatmapparm" xbinaxis=false ybinaxis=false datatransparency=0; 
     continuouslegend "heatmapparm"/location=outside valign=bottom; 
     endlayout; 
    endgraph; 
    end; 
run; 

title #byval(classVar); 
proc sgrender data=dataSet template=heatmapparm; 
    by classVar; 
run; 

여러분 모두 감사합니다!

+2

항목 제목과 함께 proc template의 동적 변수 부분을보십시오. – Reeza

답변

0

매크로 변수를 사용하여 제목을 변경하십시오. 여기에 예제가 있습니다

%let classVar=VARIABLEVALUE1; 

title &classVar.; 
proc sgrender data=dataSet template=heatmapparm; 
    by &classVar.; 
run; 

SAS MACRO 내에 prog sgrender 코드를 넣어 언제나 깨끗한 코드를 작성할 수 있습니다.

+0

@ 설리반 당신이하고있는 일을 따르고 있다고 생각 하나, VARIABLEVALUE1이 무슨 뜻입니까? 리터럴 값이 무엇이든간에 내 경우에는 문자열이며 작동하도록 할 수 없습니다. 또한, proc 템플릿에서 entrytitle 코드 줄을 제거해야합니까? 감사! – Code4Days

+0

제목이 이전 결과 코드와 함께 SAS Results 뷰어에 출력됩니다. 그러나 ODS 출력에 포함되기를 원합니다. (이후에 내가 언급 할 것이기 때문입니다.) 감사! – Code4Days

+0

VARIABLEVALUE1은 내가 명세서에 작성중인 매크로 변수에 지정된 값입니다. 그것을 대체 할 수 있습니다. 이것은 제목을 수정하는 방법에 대한 또 다른 예입니다 :'% LET STOCK = CVX; 제목 "% UPCASE (& STOCK.)에 대한 석유 배럴"주가; " – Salva