Upload
peng-wu
View
296
Download
0
Embed Size (px)
Citation preview
5 SAS [email protected]
SASSASSASSAS Call
SAS
SAS(X1, X2, )
5.1 data a(keep=date y d clpr); /*date, y, d, clpr*/set fdata.a1a0001;y=year(date); /*yeardate*/d=weekday(date); /*weekdaydate*/Min=MIN(SUM(cashcredit)1000); run;5.2 data a;set fdata.a1a0001;where year(date)>1996; /* WhereYear *run;
5.4
Sheet1
Max(X,Y);
X=Repeat(---, 20);
Sheet2
Sheet3
2000 (OF1n); (OF1n )
5.5
5.6 Array Y{10} Y1-Y10; /*Y{10} */X=Sum (Of Y{*});Z=Sum (of Y1-Y10);SUM
Sheet1
sum (x, y, z)sum (x y z)
sum (of x1-x10)sum (x1-x10)
sum (of x1-x10 d y1-y100)sum (x1-x10 d y1-y100)
Sheet2
Sheet3
PUT82005.1
5.1
Sheet1
INPUT
PUT
SUBSTR
TRIM
Sheet2
Sheet3
PUTLOG5.7 data;Y=probnorm(1.96); /* 1.96 */put Y;q1=tinv(.95, 2); /*2t0.95*/q2=tinv(.95, 2, 3); /*23t0.95*/put q1=; q2=;run;
SAS
Sheet1
Application Response Measurement (ARM)Probability and Density Functions
Arithmetic FunctionsQuantile Functions
Bitwise Logical FunctionsRandom Number Functions
Character FunctionsSample Statistic Functions
Character String Matching FunctionsSAS File I/O Functions
Currency ConversionSpecial Functions
Date and Time FunctionsState and Zip Code Functions
DBCS FunctionsTrigonometric Functions
Dynamic Link LibraryTruncation Functions
External File FunctionsVariable Information Functions
Financial FunctionsNoncentrality Functions
Library and Catalog FunctionsWeb Tools
Mathematical Functions
Sheet2
Sheet3
SAS196011000
Sheet1
DATDIF(sdate,edate,basis)MDY(month,day,year)
DATDIF(01jan2002d, 01jan2003d, act/act);MDY(10, 10, 2002)
DATDIF(01jan2002d, 01jan2003d, 30/360);MINUTE(time | datetime)
DATE()MONTH(date)
DATEJUL(julian-date)QTR(date)
DATEPART(datetime)SECOND(time | datetime)
DATETIME()TIME()
DAY(date)TIMEPART(datetime)
DHMS(date,hour,minute,second)TODAY()
HMS(hour,minute,second)WEEKDAY(date)
HOUR()YEAR(date)
INTCK('interval',from,to)YRDIF(sdate,edate,basis)
INTCK(30,01jan2002d, 01jan2003d);yrdif('16oct1998'd, '16feb2003'd, '30/360');
INTNX('interval', start-from,yrdif('16oct1998'd, '16feb2003'd, 'act/act');
increment)YYQ(year,quarter)
JULDATE(date)
Sheet2
Sheet3
5.8 data _null_;sdate='01jan2002'd;edate='01jan2003'd;actual=datdif(sdate, edate, 'act/act'); /* */days360=datdif(sdate, edate, '30/360'); /*30 */put actual= days360=;run;data _null_;actual=datdif(01jan2002d, 01jan2003d, act/act);days360=datdif(01jan2002d, 01jan2003d, 30/360);put actual= days360=;run;actual=365, days360=360.
5.9 data _null_;sdate='16oct1998'd;edate='16feb2003'd;y30360=yrdif(sdate, edate, '30/360'); /* 30/360 */yactact=yrdif(sdate, edate, 'ACT/ACT'); yact360=yrdif(sdate, edate, 'ACT/360'); yact365=yrdif(sdate, edate, 'ACT/365');put y30360= yactact= yact360= yact365=;run;y30360=4.333yactact=4.3369yact360=4.4yact365=4.3397.
5.10 data;x=date (); y=today();put x= y=;run;DATE()TODAY()data;x=date (); y=today();format x y yymmdd10.;put x= y=;run;
5.11 data; n=datetime(); put n=; x=datetime (); put x=; format x datetime20.4; y=datetime (); put y=; format y nldatm20.; m=time(); put m=; z=time(); put z=; format z hhmm8.2; run;
n=1347837287.5x=16sep02:23:14:47.500y=16sep2002:23:14:48m=83687.5z=23:14.79
5.12 data a;set fdata.a600001 (obs=10);keep date year qtr month day;year=year (date);qtr=qtr (date);month=month (date);day=day (date);proc print noobs;run;5.13 data;h=hour (datetime ()); put h=;m=minute (datetime ()); put m=;run;
5.14 data;mdy=mdy (08,18,2001); put mdy=;format mdy yymmdd10.;hms=hms (21,50,51); put hms=;x=21*60*60+50*60+51; put x=;dhms=dhms (date (), 21,50,51); put dhms=;dhms=dhms (15263,21,50,51); put dhms=;y=15263*24*3600+x; put y=;run;mdy=2001-08-18hms=78651x=78651dhms=1347832251dhms=1318801851y=1318801851
PROBNORM(X)X 5.15 data;P1=probnorm(0);P2=probnorm(1.96);P3=probnorm(2.5758293);put P1= P2= P3=;run;P1=0.5P2=0.9750021049P3=0.9949999999
PROBCHI(X, DF, NC)DFNCXNC0DF5.16881131data;P=1-Probchi(31, 88,11);put P=;run;
PROBGAM(X, A)AGAMMAX5.175.2GAMMA7.5data;P=Probgam(7.5, 5.2);put P=;run;
PROBBETA(X, A,B)0X1, A>0, B>0.ABX5.1842.50.75data;P=Probbeta(0.75, 4, 2.5);put P=;run;
F PROBF(X, ndf, ddf, nc)(ndf,ddf)FXncnc=0F5.1932230F3data;P=1-Probf(3.32,2,30);put P=;run;
t PROBT(X, df, nc)dfnctXnc=0tdf
t(1-Probt(ABS(X), df))*2
5.20 6t2.8data;P=(1-Probt(ABS(-2.8), 6))*2;put P=;run;
PROBBNML(p, n, M)0p1n10mnpnXM
X=kProbbnml(p, n, k)-Probbnml(p, n, k-1)5.210.6208data;P=probbnml(0.6, 20, 8)-probbnml(0.6, 20, 7);put P=;run;
POISSONlambdanlambda0n0Poissonn
5.22 0.886data;P=Poisson(0.88, 6);put P=;run;
PROBNEGB(pnm)0pln0m0Pnm
5.230.5102data;P=Probnegb(0.5, 10, 2);put P=;run;
PROBHYPRnnknXornn1, 0knn, 0nnn, max(0,k+n-nn) xmin(k, n).nnknnnnnXK=0nnx=01or, or15.24 or=1.51.5data;P1=Probhypr(10, 5, 3, 2);P2=Probhypr(10, 5, 3, 2, 1.5);put P1= P2=;run;
XFXP0P1XpFXp=PXp XPFXP
CINV(p, df, nc)0p1, df0, nc0.dfncP
BETAINV (p, a, b)0p1a0b0.abPFtF
F FINV(p, ndf, ddf, nc)0p1ndf0ddf0nc0(ndf, ddf)nncFPNc5.25 F210F0.95qdata;q=10*betainv(0.95, 1, 5)/(2*(1-betainv(0.95, 1, 5)))=4.1028;put q=;run;
t TINV(p, df, nc)0p1df0.dfnctPnc
PROIBT(p)0p1.PROBNORM5.26 ProbitProbnormdata;P=probnorm(probit(0.025)); put P=;run;P=0.025.
GAMINV(p, a)0p1a0
X15
MEAN(of xl-xn) MEAN(xyz, )
MAX(of xl-xn) MAX(xy)
MIN(of xl-xn) MIN(xy)
N(of xl-xn) N(xy)
NMISS(of xl-xn) NMISS (x1,x2, )
SUM(of xl-xn) SUM (x1,x2, )
VAR(of xl-xn) VAR (x1,x2, )
STD(of xl-xn) STD (x1,x2, )
STDERR(of xl-xn) STDERR (x1, x2, )
CV(of xl-xn) CV (x1,x2, )CV
RANGE(of xl-xn) RANGE (x1, x2, )
CSS(of xl-xn) CSS(x1, x2, )
USS(of xl-xn) USS (x1, x2, )
SKEWNESS(of xl-xn) SKEWNESS (x1, x2, )
KURTOSIS(of xl-xn) KURTOSIS (x1, x2, )4
SAS11
5.27 RANNORdata RV;retain _seed_ 0; /*retain 0_seed_*/mu=0;sigma=1; do _i_ = 1 to 1000;Normal1 = mu + sigma * rannor(_seed_); /*mu,sigma*/output;end;drop _seed_ _i_ mu sigma;run;
5.28 NORMALdata RV;retain _seed_ 0;mu=0;sigma=1;do _i_ = 1 to 1000;normal1 = 0 + 1 * normal(_seed_);/*mu,sigma*/output;end;drop _seed_ _i_;run;
5.29 RANUNIdata RV1; retain _seed_ 0; a=-1; b=2; do _i_ = 1 to 1000;uniform1 = a + (b-a) * ranuni(_seed_); /*[a, b]*/output;end;drop _seed_ _i_;run;
5.30 UNIFORMdata RV1; retain _seed_ 0; a=-1; b=2; do _i_ = 1 to 1000;uniform1 = a + (b - a) * uniform(_seed_); /*[a, b]*/output; end; drop _seed_ _i_;run;
5.31 B(20, 0.6)data RV2;retain _seed_ 0;n=20;p=0.6;do _i_ = 1 to 1000;binom1 = ranbin(_seed_, n, p); /*B(20, 0.6)*/output;end;drop _seed_ _i_;run;
5.32 17data RV4;beta=2;alpha=17/2;retain _seed_ 0;do _i_ = 1 to 1000;chisq1 = beta*rangam(_seed_,alpha); /*17 */output;end;drop _seed_ _i_ beta alpha;run;
ALPHABETAGAMMAXX=beta*rangam(seed,alpha);2*ALPHAX2*ALPHAX=2*rangam(seed,alpha);NXErlangX=beta*rangam(seed,N);Nbeta.ALPHA BETAbetaXY1=rangam(seed,alpha);Y2=rangam(seed,beta);X=Y1/(Y1+Y2);
5.33 POISSON(2.1)data RV7;retain _seed_ 0;LAMBDA =2.1;do _i_ = 1 to 1000;poisson1 = ranpoi(_seed_, LAMBDA); /*LAMBDA */output;end;drop _seed_ _i_ LAMBDA;run;
5.34 POISSON(2.1)data RV8;retain _seed_ 0;alpha=0.6;beta=1.2;do _i_ = 1 to 1000;_wm_ = rangam(_seed_, alpha);_dv_ = rangam(_seed_, beta);beta1 = _wm_ / (_wm_ +_dv_);output;end;drop _wm_ _dv_ _seed_ _i_ alpha beta;run;
5.35 1.11data RV9;retain _seed_ 0;LAMBDA=1.11;do _i_ = 1 to 1000;exp1 = ranexp(_seed_)/ LAMBDA;output;end;drop _seed_ _i_ LAMBDA;run;
LAMBDAXX=ranexp(seed)/lambda;ALPHABETAXX=alpha-beta*log(ranexp(seed));PXX=floor(-ranexp(seed)/log(1-p));
5.36 1-0.7data RV13;retain _seed_ 0;P=0.7;do _i_ = 1 to 1000;Geom1 = floor(-ranexp(_seed_)/log(1-P));output;end;drop _seed_ _i_ P;run;
5.37 1.28.1data RV12;retain _seed_ 0;ALPHA=1.2;BETA=8.1;do _i_ = 1 to 1000;Extreme1 = ALPHA - BETA *log(ranexp(_seed_));output;end;drop _seed_ _i_ ALPHA BETA;run;
SEED SEEDSEED 5.3 SEED SEEDCALL
Sheet1
Sheet2
Sheet3
SAS CALL SASCALL
Sheet1
Sheet2
Sheet3
Sheet1
Sheet2
Sheet3
NORMALUNIFORMCALLCALL routine (seed, variate);
CALLSEEDCALL
Sheet1
Routine
Seed
Argument
Variate
Sheet2
Sheet3
5.38
data RV;retain seed1 seed2 161321804;do I=1 to 5;x1= ranuni(seed1);x2= ranuni(seed2);output;end;options nocenter;proc print;run;
SEED1SEED2X1X2SEED2X2SEED2X1 Obs seed1 seed2 I x1 x2 1 161321804 161321804 1 0.43617 0.64888 2 161321804 161321804 2 0.34138 0.42729 3 161321804 161321804 3 0.43237 0.63834 4 161321804 161321804 4 0.74690 0.89710 5 161321804 161321804 5 0.13630 0.19031
5.39 CALLdata RV;retain seed3 161321804 seed4 135279821;do I=1 to 5;call ranuni(seed3, X3);call ranuni(seed4, X4);output;end;proc print;run;
SEED3=SEED1X3X1X2CALL Obs seed3 seed4 I X3 X41 936674311 724196333 1 0.43617 0.337232 1393460745 1733883844 2 0.64888 0.807403 733112270 1200908019 3 0.34138 0.559224 917607517 674688435 4 0.42729 0.314185 928513130 1646762308 5 0.43237 0.76683