로그인   |  회원가입  |  사이트맵  |  Contact Us
  아이디 저장하기
 
홈 > 참여마당 > Question & Answer
[SAS 프로그래밍] Gchart 출력 오류 2017.08.04
백연희 125 0
http://www.mysas.co.kr/sas_club/b_answer.asp?b_no=7385&cmd=content&bd_no=6

 

​안녕하세요,


​Gchart 출력 오류가 있어 조언을 구합니다. 원래 코드 상으론 두 사건이 일어나는 시점을 기준으로 -1년 ~ + 1년의 트렌드를 주 단위로(week) 보는 매크로라서, -53 ~ +53 으로 총 106개의 막대가 출력되어야 하는데, 제가 그리니 6개만 나옵니다ㅠㅠ

같은 매크로로 106개의 막대가 나온 사람도 있는데, X 축 간격때문에 생기는 문제인 것 같은데 해결방법을 모르겠습니다.

 

 

-원래 나와야 하는 그림-

 

 

 

-출력된 그림-

 

weeks 막대 그래프

 

 

Gchart 출력하는 부분의 Macro를 공유드립니다. 이미 위의 코드에서 두가지 관심 사건이 동시 발생하는 시점(0)을 기준으로 week가 정의된 상태입니다. SAS 고수님들의 답변을 기다리겠습니다.ㅠㅠ

 

proc sort data=pssa;
   quit;

  proc means data=pssa noprint;
   by weeks;
   var flag;
   output out=pssaplot&atc1&name(keep=weeks pat) sum=pat;

  data _null_;
   set results&atc1&name;
   call symput('nall',put(nall,6.0));
   call symput('noncausal',put(noncausal,6.0));
   call symput('causal',put(causal,6.0));
   call symput('crude',put(crude,6.3));
   call symput('nulleffect',put(nulleffect,6.3));
   call symput('adjusted',put(adjusted,6.3));
   call symput('lowci',put(low_ci,6.3));
   call symput('uppci',put(upp_ci,6.3));
   if noncausal>causal then do;
    call symput('max',put(noncausal,6.0));
   end;
   if causal>=noncausal then do;
    call symput('max',put(causal,6.0));
   end;

  proc sort data=pssaplot&atc1&name out=temp;
   by pat;

  data temp;
   set temp;
   by pat;
   if first.pat;

  data _null_;
   set temp;
   call symput('y0',put(pat,6.0));
   
  data annon;
     length text $ 100;
     xsys    = '2';
     ysys = '2';
     function = 'label';
     size = 0.5;
     position = '6';

    x = -50;  y = &y0; text =  "Adj RR (95% CI)= "; output;
    x = -33;  y = &y0; text =  "&Adjusted (&lowci - &uppci)"; output;

   axis1 label=(h=1 "Weeks since first &label1 prescription") order=(-159 to 159);
   axis2 label=(h=1 angle=90 'Number of patients') ;
   pattern1 color=black value=solid;

  title "PSSA &label1 (&atc1) &name";

  proc gchart data=pssaplot&atc1&name annotate=annon ;
   vbar weeks / sumvar=pat  discrete maxis=axis1 raxis=axis2 levels=all;
   title2 "Non-causal Group (&name --> &atc1)           Causal Group (&atc1 --> &name)";
   run;
   quit;​ 

 

 
 
    
박봉기   [2017/08/29 2:30]
재현할 수 없어서 정확하지는 않지만 프로그램을 좀 보니 GCHART 문의 문제가 아닌듯합니다.
차트에 프린트된 Title 부분을 보니 &name값이 'HF'인듯 한데요.
이전의 데이터 스텝에 set results&atc1&name; 요부분이 있어서요.
혹시 이 데이터는 weeks가 6가지 밖에 없는게 아닐까 싶네요.
 
 sas file server 작동이 잘 안되요
 부분일치 하는 문자데이터 추출하기