74
第5第 SAS 第第第第第第 第第第第第第第第第第 第第第 [email protected]. cn

05SAS函数及其应用

  • 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.3 SAStotx=xl+x2+x3+x4+x5+x6+x7+x8+x9+x10; if totx
  • 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