SAS软件与数学建模.ppt

上传人:小飞机 文档编号:5447415 上传时间:2023-07-08 格式:PPT 页数:129 大小:1.33MB
返回 下载 相关 举报
SAS软件与数学建模.ppt_第1页
第1页 / 共129页
SAS软件与数学建模.ppt_第2页
第2页 / 共129页
SAS软件与数学建模.ppt_第3页
第3页 / 共129页
SAS软件与数学建模.ppt_第4页
第4页 / 共129页
SAS软件与数学建模.ppt_第5页
第5页 / 共129页
点击查看更多>>
资源描述

《SAS软件与数学建模.ppt》由会员分享,可在线阅读,更多相关《SAS软件与数学建模.ppt(129页珍藏版)》请在三一办公上搜索。

1、SAS软件与数学建模,鲜思东重庆邮电大学Email:,统计,生物,物理,化学,经济,保险,心理,教育,管理,内容简介,模块简介,SAS与Excel的通讯,常用过程,SAS的学习,曲线拟合,非线性规划,神经网络,多元统计,矩阵运算,回归分析,模块简介,SAS系统的组成,SAS数据库部分:其模块为SAS/BASE。它也是其它模块的基础,即其它模块是建立在其基础之上的,SAS分析核心:这一部分包括了许多模块:,SAS/STAT:统计分析模块:回归分析、方差分析、属性数据分析、多变量分析、判别和聚类分析、残存分析、心理测验分析和非参数分析等8类40多个过程。SAS/ETS:经济预测或时间序列分析模块。

2、如实用预测(逐步回归、指数平滑等)序列相关校正回归、分布滞后回归、ARIMA模型、状态空间方法、谱分析和互谱分析等。SAS/OR:运筹学和工程管理模块:可进行线性和非线性规划,还包括项目管理,时间安排和资源分配等问题的一整套方法。SAS/QC:质量控制和试验设计模块。SAS/IML:矩阵运算模块。SAS/LAB:菜单驱动的面向任务的解释引导式数据分析模块。SAS/INSIGHT:可视化数据探索工具模块。SAS/SPECTRAVIEW:多维数据观测、分析、研究的交互式立体可视化工具模块,模块简介,SAS系统的组成,SAS开发及呈现工具:SAS/AF:应用开发工具。采用面向对象的技术,开发用户自己

3、的图形用户界面(GUI)的应用系统。SAS/EIS:行政管理系统或个人的信息系统 SAS/GRAPH:图形软件包 SAS/GIS:集地理信息系统功能与空间数据的显示分析于一体的软件,SAS对分布处理模式的支持及其数据仓库设计:SAS/ACCESS:与外部数据库文件的接口模块。SAS/CONNECT:在网络环境下,使各平台上的SAS系统建立内在联系模块。实现分布处理,从而有效地利用各平台数据和机器资源 SAS/SHARE:实行SAS系统中数据库的并发控制的模块,SAS与Excel的通讯,SAS中数据,Excel,SAS系统基础,1 概述1.1 SAS显示管理系统1.2 SAS数据库与数据集2 S

4、AS编程基础2.1 一个简单SAS程序2.2 SAS变量2.3 SAS表达式2.4 SAS函数2.4.1 SAS函数概述2.4.2 常用SAS函数,3 DATA步3.1 DATA步流程3.2 INPUT语句3.3 数据集的整理3.4 数据集的连接与合并3.5 SAS与外部数据的交换,Statistical Analysis System(缩写为SAS):是用于数据分析与决策支持的大型集成式模块化软件系统,在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件系统,四大任务:,数据访问访问任何形式和来源的数据,数据管理将数据转变为可用形式,数据呈现以文字、图形和表格的形式展现数据信息,数据分

5、析获取有意义的信息,1.SAS显示管理系统,SAS系统的启动 点击图标,启动SAS系统,命令窗口,菜单栏,工具栏,LOG窗,程序编辑窗,状态栏,结果窗,资源管理器,结果输出窗,演示,2.SAS数据库与数据集,SAS数据库:主要用于存放数据集和目录.,SAS系统库,操作系统文件夹,2.SAS数据库与数据集,SAS数据库:主要用于存放数据集和目录.,临时库(WORK):SAS系统的临时工作目录,退出系统时,其中的内容全部删除,永久库:与临时库相反.SAS提供SASUSER,SASHELP,2.SAS数据库与数据集,SAS数据库:主要用于存放数据集和目录.,创建用户永久库,用操作系统中的资源管理器,

6、建立一文件夹,程序方式:libname 库名 文件夹所在路径,菜单方式:点击图标,然后按要求操作.,在SAS系统中建库,2.SAS数据库与数据集,SAS数据库:主要用于存放数据集和目录.,创建用户永久库,例:在SAS中先用程序方式建立一名为COURSE的用户库;再用菜单方式建立一名为COURSE1的用户库。,操作,2.SAS数据库与数据集,SAS数据集:主要用于存放数据文件。它一般由描述部分和数据部分组成,也有一些数据集包含索引部分。数据部分是存放数据的地方,它组织成一张二维表,其列表示变量,行表示观测。描述部分说明了数据集的一般信息,如数据集的名字和成员类型;建立的日期和时间;观测数以及变量

7、个数、属性等。,2.SAS数据库与数据集,SAS数据集:数据部分是存放数据的地方,它组织成一张二维表,其列表示变量,行表示观测。,观测,变量,2.SAS数据库与数据集,SAS数据集的引用:,库名数据集名,园点连接符,Data bodyfat;inPUt sex$fatpct;fat=fatpct/100;cards;M 13.3 F 22 M 19 F 26 M 20 F 16 M 8 F 12 M 18 F 21.7M 22 F 23.2 M 20 F 21 M 31 F 28 M 21 F 30 M 12 F 23M 16 M 12 M 24RUN;PROC means data=body

8、fat;var fatpct;run;,DATA步,程序步,1、一个简单SAS程序,该程序的结构包括两部分:以关键词DATA开始的DATA步;主要创建数据集,如此例中的bodyfat,同时也可以产生一些描述性统计和报表输出;以关键词PROC开头PROC步。PROC步则是系统预先写好的执行特殊任务的SAS子程序,如此例中的means过程,它主要是承担数据的分析,同时也可产生相关的数据集。,1、一个简单SAS程序,从该程序可以看出SAS程序的特点:SAS程序是由SAS关键词、SAS名字、特殊字符(如例子中的$号)和运算符组成的字符串,并以分号(;)结尾的SAS语句组成,它要求SAS系统执行一种操作

9、或给SAS系统提供信息。SAS程序不区分大小写,语句位置任意,一条语句的书写既可起始于任何行、列,也可跨越多行,同时也可以将多条语句写在一行。不过一个好的习惯是;DATA步和PROC步顶格书写,在每个步骤内的语句以缩进的方式书写,这样阅读和理解起来方便。,1、一个简单SAS程序,操作,SAS变量的命名:第一个字符必须是字母或下划线(_);后面可跟1至32个字符(数字、字母或下划线)变量的属性:类型(type):数值型、字符型(定义时变量后带$)长度(length):存储该变量所用的字节数(缺省为8)输入格式(informat)/输出格式(format):标签(label):对变量的作用给予描述

10、。,2、SAS变量,输入/输出格式:类型:字符型:用于字符变量的现成格式 数值型:用于一般数值型变量的现成格式 日期时间型:用于日期和时间的现成格式 用户定义:用于用户自定义格式,2、SAS变量,输入/输出格式:一般形式:格式名.,2、SAS变量,字符型变量,宽度,小数点后数值位数,输入/输出格式:字符格式:$w.$CHARw.,2、SAS变量,其含义是读入或显示字符变量的前w个字节。其缺省值均为变量的长度。当变量的长度未定时,$CHARw.格式宽度的缺省值为8;对$w.作为输出格式时缺省宽度为1,作为输入格式时,必须提供w的值。二者作为输出格式时,均保留字符串前的空格;但作为输入格式时,$C

11、HARw.保留字符串前的空格,而$w.则删除字符前的空格。,输入/输出格式:数值输入格式:w.d 数值输出格式:BESTw.,2、SAS变量,BESTw.是缺省输出格式。W的缺省值为12,最大可取32。含义为将数值在规定的宽度下用最为精确有效的方式显示。若用定点方式表示可提供更多的有效数字就使用定点方式;否则自动使用浮点数。,如:数据集中数值 输出格式 输出表示1257000 best6.1.26E61257000 best3.1E6,输入/输出格式:数值输入格式:COMMAw.d,2、SAS变量,如:原始数据 输入格式 记入数值$1,2345,6789 comma12.2 1234567.8

12、9$1234,5678.9 comma12.2 12345678.9($1,2345,6789)comma14.2-1234567.89,输入/输出格式:数值输出格式:COMMAw.d&DOLLARw.d,2、SAS变量,如:原始数据 输出格式 输出表示123456.7 comma12.2 123,456.70-123456.7 comma12.2-123,456.70123456.7 dollar12.2$123,456.70-123456.7 dollar12.2-123,456.70,输入/输出格式(日期):日期、时间的处理:将日期和时间值均作为数值变量存储以1960年1月1日为0点,其

13、它日期值为该日期值与1960年1月1日相差的天数。时间以1960年1月1日0时0分0秒为起点(0点),其余时间为与其的差值。,2、SAS变量,输入/输出格式(日期):输入格式:YYMMDDw.输出格式:YYMMDDxw.源数据日期 输入格式 SAS日期值 输出格式 输出表示99-10-15 yymmdd8.14532 yymmddd10.1999-10-1599/10/15 ddmmyy8.14532 yymmdds10.1999/10/1510-15-99 mmddyy8.14532 ddmmyyn8.15101999,2、SAS变量,其中输出格式中的x的取值为:x:B C D N P S含

14、义 空格:-无./,输入/输出格式(日期):输入输出格式:DATEw.源数据日期 输入格式 SAS日期值 输出格式 输出表示15OCT99 date7.14532 date9.15OCT1999,2、SAS变量,输入/输出格式(时间):输入格式:TIMEw.和输出格式:TIMEw.d hh:mm:ss.ss(时:分:秒.百分秒)源数据日期 输入格式 SAS日期值 输出格式 输出表示13:40:35.37 time11.49235.37 time11.2 13:40:35.3713 40 35.37 time11.49235.37 Time2.1313/40/35.37 time11.49235

15、.37 Time5.13:4013-40-35.37 time11.49235.37 Time8.13:40:351 40 35.37 PM time14.49235.37 Timeampm13.2 1:40:35.37 PM,2、SAS变量,输入/输出格式(日期时间):输入格式:DATETIMEw.ddmmmyy hh:mm:ss.ss 或 ddmmmyyyy hh:mm:ss.ss 输出格式:DATETIMEw.d ddmmmyy:hh:mm:ss.ss 或 ddmmmyyyy:hh:mm:ss.ss,2、SAS变量,变量列表:x1 x2 x3 xn 简写为x1-xn A B C D 简写

16、为A-D V X TD UP JPP 简写为V-JPP,2、SAS变量,表达式是由运算符和运算对象形成的指令集,3、SAS表达式,1.SAS常数 数值常数:110-0.35 1.8E3 0.5E-10 字符常数:Smith 23 John Smith 日期,时间和日期时间常数:13JUL2001d 22:23t 13JUL2001:22:23:25DT,2.SAS运算符:算术运算符:*(乘方)*/+-比较运算符:=(eq)=(ne)(gt)=(ge)(取大)|(连接),表达式是由运算符和运算对象形成的指令集,3、SAS表达式,3.运算次序:括号内的表达式先算优先级(见下面)相同优选级别的算符,

17、按顺序,先左后右,表达式是由运算符和运算对象形成的指令集,3、SAS表达式,优先级,第一级*乘方+仅作前缀时(取正)-仅作前缀时(取负)非最大第二级*乘/除第三级+加-减第四级|连接第五级=,第六级&与第七级|,1.SAS函数的调用:functionname(argument,)-括号不能少 自变量的表示形式有两种:如x,y,z的和 sum(x,y,z)或 sum(of x y z)sum(of x-z)A=sum(x,y,z)B=min(sum(of x y z),1000),4、SAS函数,2.SAS函数的返回值:返回值为:数值型 字符型 其返回值的类型一般可通过自变量的类型加以判断(但有

18、个别有例外,如PUT函数,总是输出字符型),4、SAS函数,3.SAS函数的分类:SAS函数分为十七类:算术函数、数组函数、截取函数、数学函数、三角和双曲函数、概率函数、分位数函数、非中心函数、样本统计函数、随机数函数、财政金融函数、逐位逻辑操作函数、数字函数、字符函数、日期和时间函数、洲和Zip码换算函数和特殊函数。,4.与统计有关的SAS函数,4、SAS函数,1.概率函数:SAS系统提供了10个常见分布的概率函数,其定义为:在下面的函数均表示求这些分布函数的值。其中DF表示自由度,NC表示非中心参数值,NDF表示分子自由度,DDF表示分母自由度,其余参数为相关分布的参数项。,4.与统计有关

19、的SAS函数,4、SAS函数,1.概率函数:标准正态分布函数 PROBNORM(X)计算PU0贝塔分布函数 PROBBETA(X,a,b)X(0,1),a,b0F分布函数 PROBF(X,NDF,DDF,NC)t分布函数 PROBT(X,DF,NC)二项分布的概率分布函数 PROBBNML(P,N,M)波松分布 POISSON(,N)负二项分布 PROBNEGB(P,N,M)超几何分布 PROBHYPR(NN,K,N,X,OR)表示NN件产品,其中有K件不合格品,随机地从NN件中抽取N件,这N件中不合格品的个数服从该分布.该函数给出N件品中不合格品的个数=X的概率.参数OR是不匀率.K=0是有

20、效的值(即NN件产品中没有不合格品),由此导出X=0,不管其它参数取什么值,该函数获得值1.如果省略OR,就认为其值为1.如:X=PROBHYPR(10,5,3,2,1.5)OR=1.5表示抽到不合格品的概率是抽到合格品概率的1.5倍.,4.与统计有关的SAS函数,4、SAS函数,1.概率函数:举例:DATA DD;p=PROBCHI(5.6,4);/*求自由度为4的2分布不超过5.6的概率值p*/T=1-2*(1-PROBT(2.4,8);/*求自由度为8的P|t|2.4*/RUN;在SAS系统中操作,4.与统计有关的SAS函数,4、SAS函数,2.分位数函数:2分布的分位数 CINV(p,

21、df,nc)nc0)Beta分布的分位数 BETAINV(p,a,b)F分布的分位数 FINV(p,ndf,ddf,nc)T分布的分位数 TINV(p,df,nc)正态分布的分位数 PROBIT(p)标准正态分布的分位数,其结果在-5和5之间.Gamma分布的分位数 GAMINV(p,a),4.与统计有关的SAS函数,4、SAS函数,2.分位数函数:举例:DATA A;Q1=FINV(0.025,2,10);/*求自由度为(2,10)的F分布的2.5%分位数Q1*/Q2=FINV(0.975,2,10);/*求自由度为(2,10)的F分布的97.5%分位数Q2*/Q3=FINV(0.95,2,

22、10,3.2);/*非中心值为3.2的F分布的95%的分位数,其自由度为(2,10)*/RUN;,演示,4.与统计有关的SAS函数,4、SAS函数,3.随机数函数:,均匀分布随机数 UNIFORM(seed)其乘子为16807,模为231的乘同余发生器和一个64位数的搅乱表形成的组合发生器,seed必须是常数,它或是0或5位,6位,7位的奇数。RANUNI(seed)其乘子为397204094,模为231-1的素数发生器,seed必须是小于模231-1任何常数。标准正态分布随机数 NORMAL(seed)RANNOR(seed)一般正态分布N(,2)可由如下变换得到:,4.与统计有关的SAS函

23、数,4、SAS函数,3.随机数函数:,指数分布随机数 RANEXP(seed)产生=1的指数分布的随机数.Y=RANEXP(seed)/,则产生一般指数分布随机数 若Y=-*LOG(RANEXP(seed),则Y为具有位置参数 和尺度参数为的极值分布随机变量 若Y=FLOOR(-RANEXP(seed)/LOG(p),则Y为具有参数p的几何分布变量,4.与统计有关的SAS函数,4、SAS函数,3.随机数函数:,伽马分布随机数 RANGAM(seed,).它用组合法产生参数为非整数的GAMMA随机数.非整数可表示为整数部分和小数部分的和:=+(-).用逆变换方法产生参数为整数的GAMMA随机数X

24、1,用舍选法产生参数为小数(-)的GAMMA随机数X2,那么X1+X2即为参数为的GAMMA随机数 设X=RANGAM(seed,),则Y=X/为形状参数为,尺度参数为的GAMMA分布随机数;若2*为整数,且Y=2*X,则Y是具有自由度为2*的卡方分布随机数;若=n(正整数)且Y=X/,那么Y是Erlang(厄兰)分布随机数.它是n个独立的均值为的指数分布变量的和;若Y1=RANGAM(seed,),Y2=RANGAM(seed,),则Y=Y1/(Y1+Y2)是参数为和的贝塔分布随机数,4.与统计有关的SAS函数,4、SAS函数,3.随机数函数:,三角分布随机数 RANTRI(seed,h)0

25、h1 其密度函数为:的三角分布随机数.对一般区间a,b上的三角形分布随机数Y,可由0,1区间上三角形分布的随机数的线性变换得到.即:Y=(b-a)*RANTRI(seed,h)+a h=(c-a)/(b-a)ca,b,4.与统计有关的SAS函数,4、SAS函数,3.随机数函数:,柯西分布随机数 RANCAU(seed)用舍选法产生 Y=+*RANCAU(seed),则Y是位置参数为,尺度参数为的一般柯西分布随机数二项分布随机数 RANBIN(seed,n,p)波松分布随机数 RANPOI(seed,)离散分布随机数 RANTBL(seed,p1,p2,pn)此函数产生一个由p1到pn定义的概率

26、密度函数的变量.它返回数值1,2,3,n,且具以下概率分布:1 2 3 n p1 p2 p3 pn,4.与统计有关的SAS函数,4、SAS函数,3.随机数函数:,关于种子数(seed):当SEED0时,则取系统当前的日期时间值作为初始值随机数函数每次执行时虽然当前的种子不断变化,但自变量SEED的值保持不变.因此不可能控制初始化之后的随机数.若想控制随机数流,可使用CALL 子程序 Call ranbin(seed,n,p,x)Call rancau(seed,x)Call ranexp(seed,x)Call rannor(seed,x)Call ranpoi(seed,x)Call ran

27、tbl(see,p1,p2,pn,x)Call rantri(seed,h,x)Call ranuni(seed,x)Call rangam(seed,a,x),4.与统计有关的SAS函数,4、SAS函数,4.样本统计函数:,均值 MEAN(OF X1-Xn)或 MEAN(X,Y,Z,)(注:缺失值不含在内)最大值 MAX(OF X1-Xn)或 MAX(X,Y,Z,)(注:缺失值不含在内)最小值 MIN(OF X1-Xn)或 MIN(X,Y,Z,)(注:缺失值不含在内)非缺失值的个数 N(OF X1-Xn)或 N(X,Y,Z,)缺失数据的个数 NMISS(OF X1-Xn)或 NMISS(X,

28、Y,Z,)求和 SUM(OF X1-Xn)或 SUM(X,Y,Z,)(注:缺失值不含在内)方差 VAR(OF X1-Xn)或 VAR(X,Y,Z,)(注:缺失值不含在内)标准差 STD(OF X1-Xn)或 STD(X,Y,Z,)(注:缺失值不含在内),4.与统计有关的SAS函数,4、SAS函数,4.样本统计函数:,标准误差 STDERR(OF X1-Xn)或 STDERR(X,Y,Z,)(注:缺失值不含在内)变异系数 CV(OF X1-Xn)或 CV(X,Y,Z,)(注:缺失值不含在内)极差 RANGE(OF X1-Xn)或 RANGE(X,Y,Z,)(注:缺失值不含在内)偏差平方和(校正平

29、方和)CSS(OF X1-Xn)或 CSS(X,Y,Z,)(注:缺失值不含在内)未校正的平方和 USS(OF X1-Xn)或 USS(X,Y,Z,)(注:缺失值不含在内)偏斜度 SKEWNESS(OF X1-Xn)或 SKEWNESS(X,Y,Z,)(注:缺失值不含在内)峰度 KURTOSIS(OF X1-Xn)或 KURTOSIS(X,Y,Z,)(注:缺失值不含在内),编译阶段和执行阶段,1、DATA步流程,编译阶段(Compilation Phase):语法检查。若出现严重错误,则停止执行。将程序转换为机器码,代执行阶段使用 建立工作部件,输入缓冲器(Input Buffer)建立工作部件

30、PDV(Program Data Vector)确定数据集中各个变量的三个必须的属性:变量名,类型,长度 建立新建数据集的描述部分,编译阶段和执行阶段,1、DATA步流程,编译阶段(Compilation Phase):,语法检查的主要内容:漏掉或错拼的关键词 无效的变量名 遗漏或错误的符号 无效的选择项,编译阶段和执行阶段,1、DATA步流程,编译阶段(Compilation Phase):,在内存中建立程序数据矢量PDV 用于建立SAS系统的数据集,一次只处理一个观测 两个自动变量 _N_ 记录DATA步执行的次数 _ERROR_指示出错信息.0表示无错误,1表示有错误,PDV的一般格式:

31、|_N_|_ERROR_|,编译阶段和执行阶段,1、DATA步流程,编译阶段(Compilation Phase):,建立数据集的描述部分 数据集名 观测数和变量个数 变量名及其属性,编译阶段和执行阶段,1、DATA步流程,执行阶段(Execution Phase):创建数据集的数据部分,执行顺序 PDV中外部为题初始化为缺省值输入每条记录至输入缓冲器,按INPUT语句读至PDV按数据步的其它语句处理后存入PDV在数据步结束时缺省地将PDV的内容作为一条观测 写入新的数据集回到数据步的开始.使PDV中外部变量初始化为缺省值对源文件中每条记录都按上述步骤执行一次当对源文件最后一条记录执行结束后,

32、数据步执行完成.,编译阶段,1、DATA步流程,data bodyfat;inPUt sex$fatpct;fat=fatpct/100;cards;M 13.3F 22 RUN;,程序数据矢量|_N_|_ERROR_|SEX|FATPCT|,data bodyfat;inPUt sex$fatpct;fat=fatpct/100;cards;M 13.3F 22RUN;,程序数据矢量|_N_|_ERROR_|SEX|FATPCT|FAT|,数据集名:bodyfat 变量的个数(从PDV中可知)观测个数(执行到RUN时也已知)变量名及属性(从PDV中可知),执行阶段,1、DATA步流程,dat

33、a bodyfat;inPUt sex$fatpct;fat=fatpct/100;cards;M 13.3 F 22RUN;,程序数据矢量|_N_|_ERROR_|SEX|FATPCT|FAT|1|0|M|13.3|.|,初始缺省值,data bodyfat;inPUt sex$fatpct;fat=fatpct/100;cards;M 13.3F 22RUN;,程序数据矢量|_N_|_ERROR_|SEX|FATPCT|FAT|1|0|.|.|,data bodyfat;inPUt sex$fatpct;fat=fatpct/100;cards;M 13.3 F 22RUN;,程序数据矢量

34、|_N_|_ERROR_|SEX|FATPCT|FAT|1|0|M|13.3|0.133|,将 M 13.3 0.133写入数据集bodyfat,一个观测被处理完后,这时SAS系统首先将程序数据矢量中的数据写入数据集中(两个自动变量的值并不写入,此值可在其他编程是使用),同时SAS系统将控制又返回到DATA步的开头,程序开始第二个观测的处理,此过程一直到没有观测要处理为止。,1、DATA步流程,常用的有三种方式:自由格式、列方式、规定格式,2、INPUT语句,自由格式:,输入格式 input 变量名1$变量名2$|;特点:输入的数据之间至少要用一个空格隔开 input中定义的变量顺序应与数据区

35、中数据值对应 一行一条观测(无|选项时),常用的有三种方式:自由格式、列方式、规定格式,2、INPUT语句,自由格式:,例子,data A;input sex$fatpct;cards;M 13.3 F 22 M 19 F 26run;,数据集A中的数据Sex fatpctM 13.3F 22M 19F 26,常用的有三种方式:自由格式、列方式、规定格式,2、INPUT语句,自由格式:,和的作用,data A;input x y;cards;11 22 33 4455 66 77 88run;,数据集A中的数据x y 22 44 6677 88,data B;input x;input y;c

36、ards;11 22 33 4455 66 77 88run;,data C;input x;input y;cards;11 22 33 4455 66 77 88run;,数据集B中的数据x y 2255 66,数据集B中的数据x y 55,常用的有三种方式:自由格式、列方式、规定格式,2、INPUT语句,列方式:,输入格式 input 变量名$起始列-终止列;特点:输入的数据按固定的格式排列 可将含空格的字符串赋值给字符型变量 可只读取数据区中某些数据,常用的有三种方式:自由格式、列方式、规定格式,2、INPUT语句,列方式:,已知数据为 1 2 3 1-5-0-5-0-5-0 张 军0

37、1APR75男807984 王卫红24OCT78女959689,input name$1-6 dmy$7-13 sex$14-15 math 16-17 phy 18-19 eng 20-21;,input name$1-6 sex$14-15 dmy$7-13 phy 18-19;,常用的有三种方式:自由格式、列方式、规定格式,2、INPUT语句,规定格式:,输入格式 input 位置控制指针 变量名$读入格式;特点:适用于字段固定格式的数据 给出字段开始列数,通过输入格式给出读入长度 可设定输入格式,常用的有三种方式:自由格式、列方式、规定格式,2、INPUT语句,规定格式:,位置控制指针

38、n 表示将输入指针移动到第n列,这是指针的绝对位置移动+n 表示将输入指针向后移动n列,这是指针的相对移动,读入格式(见前面所述),常用的有三种方式:自由格式、列方式、规定格式,2、INPUT语句,规定格式:,例,已知数据为 1 2 3 1-5-0-5-0-5-0 张 军01APR75男807984 王卫红24OCT78女959689,input 1 name$6.dmy date7.sex$2.math 2.phy 2.eng 2.;input name$6.14 sex$2.7 dmy date7.+4 phy 2.;,为了对数据进行分析,有时还要对以有的数据集进行整理,如提取需要处理的变

39、量或观测等,这样才能满足各种分析的要求,3、数据集的整理,常用的操作有:赋值 累加 语句DROP,KEEP,IF,DO END,赋值语句 它是将某个SAS表达式的值赋给变量,其格式为:变量=表达式。若变量已经存在,则表示对该变量的值进行修改,否则表示建立一个新变量,3、数据集的整理,累加语句 格式为:累加变量+表达式,它表示把表达式的结果加到累计变量中。注意累加变量只能是数值型变量,且最好将表达式用小括号括起来,即累加变量+(表达式)。在第一个观测被读取之前,其值被自动置0,若表达式为缺失值,则将表达式当作0处理,DROP和KEEP语句 格式为:DROP 变量表 表示将所列的变量不输出到所建立

40、的数据集。KEEP 变量表 表示将所列出的变量输出到所建立的数据集。,3、数据集的整理,这两种方法事实上可达到同样的效果,即选择数据集中的变量。这两种形式要看哪种方便就用哪个,若要保留的变量少,可直接用KEEP=语句,这样等式右边列出的变量个数少,比较方便;若不需要的变量少,用DROP=语句则较方便。,例,3、数据集的整理,data B;input name$1-6 dmy date7.sex$14-15 math 16-17 phy 18-19 eng 20-21;total=sum(math,phy);teng+eng;drop dmy sex;/*此句亦可用KEEP NAME MATH

41、PHY ENG TOTAL TENG;替代。*/cards;张 军01MAR75男807984王卫红24JUL78女959689run;,输出结果 OBS NAME MATH PHY ENG TOTAL TENG 1 张 军 80 79 84 159 84 2 王卫红 95 96 89 191 173,条件语句 IF条件语句 格式为:IF 条件表达式 THEN SAS语句;ELSE sas语句;其意义为如果条件表达式为真(其值非0),则去执行THEN后面的SAS语句。若条件表达式为假(其值为0),则去执行ELSE后面的SAS语句(当ELSE选项存在时)或下一条SAS语句(ELSE语句不存在时)

42、。,3、数据集的整理,条件语句子集IF语句 格式为:IF 条件表达式;它表示当条件表达式为真时,SAS系统对正被处理的观测继续执行IF语句后面的语句;若表达式为假,则返回执行下一个DATA步,3、数据集的整理,循环语句简单DO语句 格式:DO;多个sas语句;END;这时的DO END象是一对括号,将多个SAS语句封装起来,它通常IF语句联合使用,3、数据集的整理,循环语句简单DO语句 IF SEX=男 THEN DO;MATH=MATH+2;PHY=PHY-4;TOTAL=SUM(MATH,PHY);END;,3、数据集的整理,相当于IF SEX=男 THEN MATH=MATH+2;IF

43、SEX=男 THEN PHY=PHY-4;IF SEX=男 THEN TOTAL=SUM(MATH,PHY);,循环语句循环DO语句 格式:DO 循环变量=初值 TO 终值 BY 步长;若干SAS语句;(循环体)END;,3、数据集的整理,括号内的终值和步长均为可选项,当无步长时,其值为1,当无终值时,循环体中至少有一语句控制循环的结束,否则就为一死循环.其执行过程是,循环变量在取得初值后,结合步长方向,同终值进行比较,若没有超过终值,则执行一次循环体,循环变量增加一个步长,继续下一轮的执行,直到循环变量超过终值为止.要注意在循环体内不要对循环变量进行操作,以免出现死循环,另外循环变量也会被写

44、到所建的数据集,若不需要,可用DROP语句将其删除.,循环语句循环DO语句 格式:DO 循环变量=值1,值2,值3,;若干SAS语句;(循环体)END;,3、数据集的整理,如:Do I=2 to 10 by 2;Do j=10 to 2 by 2;Do k=3.6 to 4.8 by 0.05;Do n=1,5,15,30,60;Do month=JAN,FEB,MAR;Do q=k to n/10;,循环语句循环DO WHILE语句 格式:DO WHILE 条件表达式;若干SAS语句;(循环体)END;,3、数据集的整理,此循环语句执行的过程是:当条件表达式为真时,执行循环体,直到条件表达式

45、为假为止.它是先判断条件,再执行循环体,循环语句循环DO UNTIL语句 格式:DO UNTIL 条件表达式;若干SAS语句;(循环体)END;,3、数据集的整理,它首先执行循环体一次,之后再进行条件的判断,若条件为假,则继续下一次循环,若条件为真,则循环结束,OUTPUT语句,3、数据集的整理,data CM CF;input name$1-6 dmy 7-13 sex$14-15 math 16-17 phy 18-19 eng 20-21;if sex=男 then output CM;if sex=女 then output CF;drop dmy sex;/*此句亦可用KEEP NA

46、ME MATH PHY ENG TOTAL TENG;替代。*/cards;张 军01MAR75男807984王卫红24JUL78女959689run;,一次产生两个数据集:数据集CM中只含男性的观测,数据集CF中则只含有性别为女的观测,3、数据集的整理,注释语句 一个好的编程习惯是对程序进行恰当的注释,以防止遗忘和增加可读性.给程序加注释的格式有两种:*注释内容;整句注释(后面的;号不能少)/*注释内容*/(任意内容注释),4、数据集的连接与合并,A,B,A,B,连接,合并,+,+,4、数据集的连接与合并,连接,数据集的连接 数据集的连接是将数据集纵向连接起来,其主要目的给数据集追加观测。这

47、一功能可由SET语句完成,其格式如下:SET 数据集1(选项);常用的选项有:KEEP=变量表 只打开由变量表中所列出的变量.DROP=变量表 变量表中所列出的变量将不被打开。FIRSTOBS=n1 从第n1个观测开始以后的观测将被选入新建数据集.OBS=n2 新建数据集的观测到第n2个观测为止.RENAME=(原变量名=新变量名)将原变量名改为新变量名.,4、数据集的连接与合并,连接,data A;input no name$math phy eng;cards;9701 wanglei 90 86 799702 wanghao 98 97 909703 gudexian 87 86 949

48、706 zhuming 96 87 86run;,data B;input no name$math phi chem geo;Cards;9701 wanglei 90 86 89 769702 wanghao 98 97 69 729704 zhuzhun 88 76 78 689705 chaoyin 64 85 76 66run;,数据集A:no name math phy eng9701 wanglei 90 86 799702 wanghao 98 97 909703 gudexian 87 86 949706 zhuming 96 87 86,数据集Bno name math p

49、hi chem geo9701 wanglei 90 86 89 769702 wanghao 98 97 69 729704 zhuzhun 88 76 78 689705 chaoyin 64 85 76 66,4、数据集的连接与合并,连接,data C;set A(drop=eng)B(drop=chem geo rename=(phi=phy);run;,OBS NO NAME MATH PHY 1 9701 wanglei 90 86 2 9702 wanghao 98 97 3 9703 gudexian 87 86 4 9706 zhuming 96 87 5 9701 wang

50、lei 90 86 6 9702 wanghao 98 97 7 9704 zhuzhun 88 76 8 9705 chaoyin 64 85,4、数据集的连接与合并,连接,若不用选项,直接使用,其结果如下:data C1;set A B;run;,OBS NO NAME MATH PHY ENG PHI CHEM GEO 1 9701 wanglei 90 86 79.2 9702 wanghao 98 97 90.3 9703 gudexian 87 86 94.4 9706 zhuming 96 87 86.5 9701 wanglei 90.86 89 76 6 9702 wangh

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号