《常用函数简介精选PPT.ppt》由会员分享,可在线阅读,更多相关《常用函数简介精选PPT.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于常用函数简介第1页,讲稿共49张,创作于星期日SAS函数 SAS系统提供的SAS函数比一般高级语言的标准函数多得多,尤其是概率函数、分位数函数、样本统计函数、随机数函数。如此丰富的SAS函数,对用户统计分析计算以及编写SAS程序带来极大的方便。第2页,讲稿共49张,创作于星期日SAS函数定义 SAS函数是一个子程序,对0个或几个参数(自变量)返回一个结果值。SAS函数的形式:函数名(函数名(参数1,参数2,)例如:MEAN(x,y,z,a)MIN(SUM(x,y,z),1000)第3页,讲稿共49张,创作于星期日SAS函数中的参数1)参数类型:变量名;常数;函数;表达式。例1 函数及其参数
2、类型举例。第4页,讲稿共49张,创作于星期日2)参数个数:有些函数不需要自变量,有些只需要一个自变量,有些函数有多个自变量。3)参数表示法:当函数有多个参数时,必须用逗号分隔开。4)参数名缩写方法:函数名(OF 变量名1 变量名n)第5页,讲稿共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)第6页,讲稿共49张,创作于星期日例2 正确与错误的表示方法
3、例3 数组元素自变量的缩写方法array y10 y1-y10;/*定义数组y10*/x=sum(of y*);z=sum(of y1-y10);例中,两个SUM函数的表示法是等价的。第7页,讲稿共49张,创作于星期日函数结果通常函数的结果由其自变量的属性决定:自变量是字符时结果变量为字符;自变量是数值时结果变量为数值。PUT函数是一个例外,它不管自变量是什么类型,其结果总是字符值。第8页,讲稿共49张,创作于星期日用PUT语句在LOG窗口显示函数值例4 显示概率值和分位数。data;Y=probnorm(1.96);/*标准正态分布Z小于1.96的概率*/put Y;q1=tinv(.95,
4、2);/*自由度为2的t分布的0.95分位数*/q2=tinv(.95,2,3);/*自由为2,非中心参数为3的t分布的0.95分位数*/put q1=q2=;run;0.9750021049q1=2.9199855804 q2=13.894376071第9页,讲稿共49张,创作于星期日利用HELP查找SAS系统提供的各种函数索引中键入:SAS FunctionHelp下拉菜单SAS 帮助与文件第10页,讲稿共49张,创作于星期日SAS函数种类在SAS系统9.1版本,SAS函数分为二十五种类型,分别是算术函数、截取函数、数学函数、概率和密度函数、分位数函数、非中心函数、样本统计函数、随机数函数
5、、财政金融函数、日期和时间函数、换算函数和特殊函数等。在SAS系统6.12版本,SAS函数分为十七种类型共有178个,SAS系统8.1版本,SAS函数分为二十二种类型共有319个函数。第11页,讲稿共49张,创作于星期日第12页,讲稿共49张,创作于星期日1.日期时间函数简介第13页,讲稿共49张,创作于星期日第14页,讲稿共49张,创作于星期日例1.1:计算两个日期之间相隔的天数data _null_;sdate=01jan2012d;edate=01jan2013d;actual=datdif(sdate,edate,act/act);days360=datdif(sdate,edate,
6、30/360);put actual=days360=;run;data _null_;actual=datdif(01jan2002d,01jan2003d,act/act);days360=datdif(01jan2002d,01jan2003d,30/360);put actual=days360=;run;第15页,讲稿共49张,创作于星期日例1.2:以日为单位计算当前日期的天数。data;x=date();y=today();format x y yymmdd10.;put x=y=;run;第16页,讲稿共49张,创作于星期日例1.3:将时间值换算为以秒计数的计算方法。data;h
7、ms=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;第17页,讲稿共49张,创作于星期日练习1计算以下数据表中日期值所在的年季月以及处于某月的第几天、某周的第几天。当日期值date=14JUL2007d时,试问这一天是星期几?Date1991-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
8、-01-12第18页,讲稿共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(date);month=month(date);day=day(date);Weekday=weekday(da
9、te);proc print noobs;format date YYMMDD10.;Run;第19页,讲稿共49张,创作于星期日解答:data _null_;weekday=weekday(12JUL2007d);put weekday=;run;第20页,讲稿共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):求指数函数exSIN(x)、COS(x)、TAN(x):正弦、余弦、正切函数.第
10、21页,讲稿共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;第22页,讲稿共49张,创作于星期日练习2ex2.1 计算0、1.57、3.14对应的正弦函数值,并将结果显示在输出窗口。ex2.2 计算e的0次幂,并计算1的自然对数。第23页,讲稿共49张,创作于星期日解答:Data;a=sin(0);b=sin(1.57);c=sin(3.14);File print;Put a=
11、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;第24页,讲稿共49张,创作于星期日3.数组函数第25页,讲稿共49张,创作于星期日数组函数应用举例data;array mult5,10,2 mult1-mult100;a=DIM1(MULT);b=DIM2(MULT);c=DIM3(MULT);put a b c;run;例3:产生一个5102的三维数组,并提取各维度上元素的个
12、数。第26页,讲稿共49张,创作于星期日练习 3产生一个行变量名为2:6,列变量名为4:13的二维数组,输出各维度上的上界和下界。第27页,讲稿共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;第28页,讲稿共49张,创作于星期日4.样本统计量函数第29页,讲稿共49张,创作于星期日简单统计量函数应用举例例4:请求出2、4、6、3、1这五个数的最大值、最小值、算术平均值、标准差、变异系数
13、。data test4;input x1-x5;cards;2 4 6 3 1;run;data simple_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;第30页,讲稿共49张,创作于星期日用简便的方
14、法实现例1中目的data simple_statistics;max_x=max(2,4,6,3,1);min_x=min(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;第31页,讲稿共49张,创作于星期日练习4某农村地区1998年随机抽查测量10名13岁女孩的身高,资料如下,试求全距、均值、标准
15、差、标准误、变异系数。145.1 143.3 153.2 152.3 150.6 148.1 144.0 137.1 158.2 146.7第32页,讲稿共49张,创作于星期日解答:data aa;input x1-x10;cards;145.1 143.3 153.2 152.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;第33页,讲
16、稿共49张,创作于星期日5.截取函数简介第34页,讲稿共49张,创作于星期日SAS截取函数应用举例例5:请把STD=1.92354和CV=0.601106用3个不同的截取函数(ceil、int、round)进行运算,并分析这些函数的作用。data test5;STD=1.92354;CV=0.601106;a1=ceil(STD);b1=ceil(CV);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
17、 close;第35页,讲稿共49张,创作于星期日练习5求小于等于31.77的最小整数;将1984.314保留2位小数。第36页,讲稿共49张,创作于星期日解答:data;x=floor(31.07);y=round(1984.314,0.01);file print;put x y;run;第37页,讲稿共49张,创作于星期日6.SAS概率函数第38页,讲稿共49张,创作于星期日SAS概率函数应用举例例6:试求出服从标准正态分布的随机变量z取值分别小于等于-2.576、-1.960、-1.645、-1.282、0、1.282、1.645、1.960、2.576所对应的概率。data test
18、3;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(2.576),0.001);Format a1-
19、a9 5.3;ods html;proc print data=test3;Var a1-a9;run;ods html close;第39页,讲稿共49张,创作于星期日练习 6设随机变量X服从自由度为3的中心卡方分布,计算X7.94的概率。第40页,讲稿共49张,创作于星期日解答data;p=1-probchi(7.94,3);put p=;run;第41页,讲稿共49张,创作于星期日7.SAS概率分布下分位数函数第42页,讲稿共49张,创作于星期日例7:试求t临界值表。options LS=95 PS=55;data abc;array T(50,9);array df(50)df1-df
20、50;g=1;k=1;do d=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 3
21、10.10390.05 480.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;第4
22、3页,讲稿共49张,创作于星期日练习7设随机变量t(df),计算t分布的分位数tp(df),其中自由度和对应概率值分别为:n=1,5,10,20;p=0.10,0.90,0.95,0.975;第44页,讲稿共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;第45页,讲稿共49张,创作于星期日8.SAS随机数函数1.UNIFORM(seed)和RANUNI(seed):产生均匀分布随机数函数;2.NORMAL(seed)
23、和RANNOR(seed):产生正态分布随机数函数;3.RANEXP(seed):指数分布随机数函数;4.RANGAM(seed,alpha):伽马分布随机数函数;5.RANTRI(seed,h):三角分布随机数函数;6.RANCAU(seed):柯西分布随机数函数;7.RANBIN(seed,n,p):二项分布随机数函;8.RANPOI(seed,lambda):泊松分布随机数函数;9.RANTBL(seed,p1,pi,pn):离散分布随机数函数;10.Rand(dist,parm-1,parm-k):根据特定的分布产生随机数。第46页,讲稿共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)的随机数第47页,讲稿共49张,创作于星期日产生1000个服从标准正态分布的随机数练习8:第48页,讲稿共49张,创作于星期日2023/4/2感谢大家观看第49页,讲稿共49张,创作于星期日
限制150内