《常用SAS函数简介.pptx》由会员分享,可在线阅读,更多相关《常用SAS函数简介.pptx(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SAS函数 SAS系统提供的SAS函数比一般高级语言的标准函数多得多,尤其是概率函数、分位数函数、样本统计函数、随机数函数。如此丰富的SAS函数,对用户统计分析计算以及编写SAS程序带来极大的方便。第1页/共49页SAS函数定义 SAS函数是一个子程序,对0个或几个参数(自变量)返回一个结果值。SAS函数的形式:函数名(参数1,参数2,)例如:MEAN(x,y,z,a)MIN(SUM(x,y,z),1000)第2页/共49页SAS函数中的参数1)参数类型:变量名;常数;函数;表达式。例1 函数及其参数类型举例。第3页/共49页2)参数个数:有些函数不需要自变量,有些只需要一个自变量,有些函数有
2、多个自变量。3)参数表示法:当函数有多个参数时,必须用逗号分隔开。4)参数名缩写方法:函数名(OF 变量名1 变量名n)第4页/共49页参数的表示法举例以逗号(,)分隔参数,如 sum(x1,x2,x3,x4,x5,x6,x7,x8)去掉逗号(,),最前面加上“of”,如 sum(of x1 x2 x3 x4 x5 x6 x7 x8)去掉逗号(,),最前面加上“of”,变量简写:sum(of x1 -x8)第5页/共49页例2 正确与错误的表示方法例3 数组元素自变量的缩写方法array y10 y1-y10;/*定义数组y10*/x=sum(of y*);z=sum(of y1-y10);例
3、中,两个SUM函数的表示法是等价的。第6页/共49页函数结果通常函数的结果由其自变量的属性决定:自变量是字符时结果变量为字符;自变量是数值时结果变量为数值。PUT函数是一个例外,它不管自变量是什么类型,其结果总是字符值。第7页/共49页用PUT语句在LOG窗口显示函数值例4 显示概率值和分位数。data;Y=probnorm();/*标准正态分布Z小于1.96的概率*/put Y;q1=tinv(.95,2);/*自由度为2的t分布的0.95分位数*/q2=tinv(.95,2,3);/*自由为2,非中心参数为3的t分布的0.95分位数*/put q1=q2=;run;第8页/共49页利用HE
4、LP查找SAS系统提供的各种函数索引中键入:SAS FunctionHelp下拉菜单SAS 帮助与文件第9页/共49页SAS函数种类在SAS系统版本,SAS函数分为二十五种类型,分别是算术函数、截取函数、数学函数、概率和密度函数、分位数函数、非中心函数、样本统计函数、随机数函数、财政金融函数、日期和时间函数、换算函数和特殊函数等。在SAS系统版本,SAS函数分为十七种类型共有178个,SAS系统版本,SAS函数分为二十二种类型共有319个函数。第10页/共49页第11页/共49页1.日期时间函数简介第12页/共49页第13页/共49页例:计算两个日期之间相隔的天数data _null_;sda
5、te=01jan2012d;edate=01jan2013d;actual=datdif(sdate,edate,act/act);days360=datdif(sdate,edate,30/360);put actual=days360=;run;data _null_;actual=datdif(01jan2002d,01jan2003d,act/act);days360=datdif(01jan2002d,01jan2003d,30/360);put actual=days360=;run;第14页/共49页例1.2:以日为单位计算当前日期的天数。data;x=date();y=toda
6、y();format x y yymmdd10.;put x=y=;run;第15页/共49页例1.3:将时间值换算为以秒计数的计算方法。data;hms=hms(21,50,51);put hms=;x=21*60*60+50*60+51;put x=;mdy=mdy(08,18,2001);put mdy=;format mdy yymmdd10.;run;第16页/共49页练习1计算以下数据表中日期值所在的年季月以及处于某月的第几天、某周的第几天。当日期值date=14JUL2007d时,试问这一天是星期几?Date1991-01-021991-01-03 1991-01-04 1991
7、-01-05 1991-01-07 1991-01-08 1991-01-09 1991-01-10 1991-01-11 1991-01-12第17页/共49页解答:data a;Input date YYMMDD10.;Cards;1991-01-021991-01-03 1991-01-04 1991-01-05 1991-01-07 1991-01-08 1991-01-09 1991-01-10 1991-01-11 1991-01-12;Proc print;Format date YYMMDD10.;run;Data b;Set a;year=year(date);qtr=qtr
8、(date);month=month(date);day=day(date);Weekday=weekday(date);proc print noobs;format date YYMMDD10.;Run;第18页/共49页解答:data _null_;weekday=weekday(12JUL2007d);put weekday=;run;第19页/共49页2.数学函数ABS(x):求x的绝对值Mod(x,y):求x/y的余数MAX(x1,x2,x3,xn):求最大值 MIN(x1,x2,x3,xn):求最小值SQRT(x):求x的算术平方根 LOG(x):求x 的自然对数EXP(x):求
9、指数函数exSIN(x)、COS(x)、TAN(x):正弦、余弦、正切函数.第20页/共49页例2:求-314的绝对值,31除以4的商的余数以及-314、-87、0、1127这4个数的最大值data _null_;x=abs(-314);y=mod(31,4);z=max(-314,-87,0,1127);put x=y=z=;run;第21页/共49页练习2ex2.1 计算0、对应的正弦函数值,并将结果显示在输出窗口。ex2.2 计算e的0次幂,并计算1的自然对数。第22页/共49页解答:Data;a=sin(0);b=sin(1.57);c=sin(3.14);File print;Put
10、 a=6.2 b=6.2 c=6.2;Run;Data;a=sin(0);b=sin(1.57);c=sin(3.14);proc print;format a 6.2 b 6.2 c 6.2;Run;Data;X=exp(0);Y=log(1);Put x y;Run;第23页/共49页3.数组函数第24页/共49页数组函数应用举例data;array mult5,10,2 mult1-mult100;a=DIM1(MULT);b=DIM2(MULT);c=DIM3(MULT);put a b c;run;例3:产生一个5102的三维数组,并提取各维度上元素的个数。第25页/共49页练习 3
11、产生一个行变量名为2:6,列变量名为4:13的二维数组,输出各维度上的上界和下界。第26页/共49页解答:data;array mult2:6,4:13 mult1-mult50;a=HBOUND(MULT);b=HBOUND2(MULT);c=lBOUND(MULT);d=lBOUND(MULT,2);put a b c d;run;第27页/共49页4.样本统计量函数第28页/共49页简单统计量函数应用举例例4:请求出2、4、6、3、1这五个数的最大值、最小值、算术平均值、标准差、变异系数。data test4;input x1-x5;cards;2 4 6 3 1;run;data si
12、mple_statistics;set test1;max_x=max(of x1-x5);min_x=min(of x1-x5);mean_x=mean(of x1-x5);std_x=std(of x1-x5);cv_x=cv(of x1-x5);run;ods html;proc print data=simple_statistics;var max_x min_x mean_x std_x cv_x;run;ods html close;第29页/共49页用简便的方法实现例1中目的data simple_statistics;max_x=max(2,4,6,3,1);min_x=mi
13、n(2,4,6,3,1);mean_x=mean(2,4,6,3,1);std_x=std(2,4,6,3,1);cv_x=cv(2,4,6,3,1);run;ods html;proc print data=simple_statistics;var max_x min_x mean_x std_x cv_x;run;ods html close;第30页/共49页练习4某农村地区1998年随机抽查测量10名13岁女孩的身高,资料如下,试求全距、均值、标准差、标准误、变异系数。第31页/共49页解答:data aa;input x1-x10;cards;145.1 143.3 153.2 1
14、52.3 150.6 148.1 144.0 137.1 158.2 146.7;run;data bb;set aa;a=range(of x1-x10);b=mean(of x1-x10);c=std(of x1-x10);d=cv(of x1-x10);file print;put a b c d;run;第32页/共49页5.截取函数简介第33页/共49页SAS截取函数应用举例例5:请把和用3个不同的截取函数(ceil、int、round)进行运算,并分析这些函数的作用。data test5;STD=1.92354;CV=0.601106;a1=ceil(STD);b1=ceil(CV
15、);a2=int(STD);b2=int(CV);a3=round(STD,0.001);b3=round(CV,0.001);ods html;proc print data=test2;Var a1-a3 b1-b3;run;ods html close;第34页/共49页练习5求小于等于的最小整数;将保留2位小数。第35页/共49页解答:data;x=floor(31.07);y=round(1984.314,0.01);file print;put x y;run;第36页/共49页6.SAS概率函数第37页/共49页SAS概率函数应用举例例6:试求出服从标准正态分布的随机变量z取值分
16、别小于等于、0、所对应的概率。data test3;a1=round(probnorm(-2.576),0.001);a2=round(probnorm(-1.960),0.001);a3=round(probnorm(-1.645),0.001);a4=round(probnorm(-1.282),0.001);a5=round(probnorm(0),0.001);a6=round(probnorm(1.282),0.001);a7=round(probnorm(1.645),0.001);a8=round(probnorm(1.960),0.001);a9=round(probnorm(
17、2.576),0.001);Format a1-a9 5.3;ods html;proc print data=test3;Var a1-a9;run;ods html close;第38页/共49页练习 6设随机变量X服从自由度为3的中心卡方分布,计算X的概率。第39页/共49页解答data;p=1-probchi(7.94,3);put p=;run;第40页/共49页7.SAS概率分布下分位数函数第41页/共49页例7:试求t临界值表。options LS=95 PS=55;data abc;array T(50,9);array df(50)df1-df50;g=1;k=1;do d=
18、1 to 40,50,60,70,80,90,100,200,500,1000,100000000;df(k)=d;k+1;w=1;do alpha=0.50,0.20,0.10,0.05,0.02,0.01,0.005,0.002,0.001;p=1-alpha/2;b=tinv(p,d);b=round(b,0.0001);T(g,w)=b;w=w+1;Output;end;g=g+1;end;Title;title t临界值表;ods html style=journal;file print;put#1 3df alpha:140.50 230.20 310.10390.05 480.
19、02 570.01 660.005 760.002 860.001;put#2 _;do L=1 to 50;c=L+2;df(50)=9999;put#c 1 df(L)4.0 13 T(L,1)6.4 21T(L,2)6.4 29 T(L,3)6.437 T(L,4)7.4 46T(L,5)7.4 55 T(L,6)7.4 64 T(L,7)8.4 74 T(L,8)8.4 84 T(L,9)8.4;end;run;ods html close;footnote;footnote note:df=9999 stands for df=100000000;第42页/共49页练习7设随机变量t
20、(df),计算t分布的分位数tp(df),其中自由度和对应概率值分别为:n=1,5,10,20;p=0.10,0.90,0.95,0.975;第43页/共49页解答:data _null_;t1=tinv(0.10,1);t2=tinv(0.90,5);t3=tinv(0.95,10);t4=tinv(0.975,20);put t1=t2=t3=t4=;run;第44页/共49页8.SAS随机数函数UNIFORM(seed)和RANUNI(seed):产生均匀分布随机数函数;NORMAL(seed)和RANNOR(seed):产生正态分布随机数函数;RANEXP(seed):指数分布随机数函
21、数;RANGAM(seed,alpha):伽马分布随机数函数;RANTRI(seed,h):三角分布随机数函数;RANCAU(seed):柯西分布随机数函数;RANBIN(seed,n,p):二项分布随机数函;RANPOI(seed,lambda):泊松分布随机数函数;RANTBL(seed,p1,pi,pn):离散分布随机数函数;Rand(dist,parm-1,parm-k):根据特定的分布产生随机数。第45页/共49页data pgm20_18;retain _seed_ 0;n=10;p=0.5;do _i_=1 to 1000;binom1=RANBIN(_seed_,n,p);output;end;drop _seed_ _i_;run;例8:产生二项分布(10,0.5)的随机数第46页/共49页产生1000个服从标准正态分布的随机数练习8:第47页/共49页解答:data RV;retain _seed_ 0;mu=0;sigma=1;do _i_=1 to 1000;Normal1=mu+sigma*rannor(_seed_);output;end;drop _seed_ _i_ mu sigma;run;第48页/共49页感谢您的观看!第49页/共49页