Chang ,JX

рассказ и язык

Archive for the ‘SAS’ Category

read multiples files

Posted by changjx on February 25, 2009

author:yhliu
source : ptt/statistics

libname ok  ‘c:\SASex’;
Let path=c:\data;

%MACRO aa;
%DO i=1 %TO 13;
DATA a00&i;
INFILE ” &path\a&i..CSV” dlm=’,';
INPUT ID X1-X9;
%END;
%MEND;
%aa;
*Macro PADZERO 在數字前補0, 使其長度固定.
%Macro PADZERO(number,digit);
%LET _l=%LENGTH(&&&number);
%IF &_l<&digit %THEN
%DO _j=&_l+1 %TO &digit;
%LET &number=0&&&number;
%END;
%MEND;
*以下取 alias 的 Macro 做修改.
%Macro RFILES(prefix,begno,endno,digits=0);
%IF &digits<1 %THEN
%LET digits=%LENGTH(&endno);
%DO i=&begno %TO &endno;
%PADZERO(&i,&digits);
%LET _fname=&prefix&i;
DATA &_fname;
INFILE “&Path&_fname..&Ext”;
*      Path 是檔案路徑, Ext 為延伸檔名, 呼叫此 macro
*      前設定之. 或如 alias 原 macro, 用固定字串亦可.
/*
(put your statements for data processing)
*/
RUN;
%END;
%MEND;

%LET Path=C:\;
%LET Ext=dat;
%RFILES(A,1,10,digits=3)

Posted in SAS | Leave a Comment »

different y axis unit

Posted by changjx on March 6, 2008

Stata
twoway connected y t ||connected var2 t, yaxis(2)

R
par(mar=c(5,4,2,4),bg=’snow2′)
plot(unemp~tse,type=’b',pch=16,
col=4,ylab=”,xaxt=’n',xlab=’Time’)
#minor axis
axis(1,at=stse,labels=stse,
col.axis=1, las=1,tck=-0.009)
#major axis
axis(1,at=ltse,labels=ltse,tck=0.009)
abline(v=1958,col=’purple’,lwd=2)
mtext(‘Unemployment rate’,2,padj=-3.5)
#y2 axis
par(new=T)
plot(GNP~tse,xaxt=’n',ann=F,yaxt=’n',col=2,
xlab=”,ylab=’GNP’,type=’b',pch=15)
axis(4,at=seq(80,120,7),
labels=seq(80,120,7))
mtext(‘GNP’,4,padj=3.5)

/*SAS*/

%LET PATH=C:\DATA;
DATA LONG;
INFILE “&PATH\LONGLY.CSV” DLM=’,';
INPUT GNPD    GNP    Unemp ArmedF Population    Year Employed;
RUN;

goptions reset=all cback=WHITE;
/*V=DOT,STAR,CIRCLE,SQUARE*/

SYMBOL1 C=BLUE V=DOT L=1 W=1 I=JOIN;
SYMBOL2 C=RED V=STAR L=2 W=1 I=JOIN;

/* Create axis definitions  F:TIME FORMAT(‘Helvetica’),
H:HEIGHT*/

AXIS1  LABEL=(F=times H=4 PCT
ANGLE=90 ‘GNP’) OFFSET=(0,0)   ORDER=(200 TO 600 BY 50);
AXIS2  LABEL=(F=times H=4 PCT ANGLE=90 ‘UNEMP’)
OFFSET=(0,0) ORDER=(100 TO 500 BY 50);
AXIS3 ORDER=(1947 TO 1962 BY 2);

/*cREATE LEGEND CONTENT*/
LEGEND1 LABEL=none VALUE=(‘GNP’ ‘unemp’)
position=(top left inside)offset=(3,-1);
LEGEND2 LABEL=none  VALUE=(‘UNEMP’)
position=(top left inside) offset=(3,-2.5);

TITLE F=times H=4 PCT ‘SAS GPLOT’;
PROC GPLOT DATA=LONG;
PLOT GNP*YEAR/OVERLAY VAXIS=AXIS1 HAXIS=AXIS3 LEGEND=LEGEND1 HREF = 1958;
PLOT2 UNEMP*YEAR/OVERLAY VAXIS=AXIS2 LEGEND=legend2;
RUN;
QUIT;

Posted in R, SAS, Stata | Tagged: , , , | Leave a Comment »