SAS软件与数学建模_第1页
SAS软件与数学建模_第2页
SAS软件与数学建模_第3页
SAS软件与数学建模_第4页
SAS软件与数学建模_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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:应用开发工具。采用面向对象的技术,开发用户自己的图形用户界面(GUI)的应用系统

3、。 SAS/EIS:行政管理系统或个人的信息系统 SAS/GRAPH:图形软件包 SAS/GIS:集地理信息系统功能与空间数据的显示分析于一体的软件 SAS对分布处理模式的支持及其数据仓库设计: SAS/ACCESS:与外部数据库文件的接口模块。 SAS/CONNECT:在网络环境下,使各平台上的SAS系统建立内在联系模块。实现分布处理,从而有效地利用各平台数据和机器资源 SAS/SHARE:实行SAS系统中数据库的并发控制的模块 SAS与Excel的通讯SAS中数据Excel常用过程曲线拟合例:负指数增长曲线数据图形模型SAS程序(nlin)常用过程非线性规划例:求下面非线性问题的解SAS程

4、序(nlp)常用过程神经网络输入层隐层输出层常用过程神经网络例:用神经网络构造逻辑运算异或输入层隐层输出层0 0 00 1 11 0 11 1 0 x1 x2 ySAS程序(xornet)常用过程多元统计聚类分析判别分析主成分分析典型相关分析因子分析常用过程矩阵运算SAS程序(iml)SAS系统基础1 概述1.1 SAS显示管理系统1.2 SAS数据库与数据集2 SAS编程基础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

5、数据集的连接与合并3.5 SAS与外部数据的交换Statistical Analysis System(缩写为SAS): 是用于数据分析与决策支持的大型集成式模块化软件系统 在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件系统四大任务:数据访问访问任何形式和来源的数据数据管理将数据转变为可用形式数据呈现以文字、图形和表格的形式展现数据信息数据分析获取有意义的信息SAS系统是一个可由几个到二、三十个工具模块及面向行业的子系统组成的可伸缩系统模块按功能可分为四类:数据库部分:Base SAS,FSP,ACCESS分析核心:STAT,ETS,QC,OR,INSIGHT开发呈现工具:AF,E

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

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

8、个数、属性等。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=bodyfa

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

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

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

12、保留字符串前的空格,而$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.89$1234

13、,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点

14、,其它日期值为该日期值与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/15151099 ddmmyy6. 14532 mmddyyp10. 10.15.199910-15-99 mmddyy8. 14532 ddm

15、myyn8. 151019992、SAS变量其中输出格式中的x的取值为:x: B C D N P S含义 空格 : - 无 . /输入/输出格式(日期):输入输出格式: DATEw.源数据日期 输入格式 SAS日期值 输出格式 输出表示15OCT99 date7. 14532 date9. 15OCT19992、SAS变量输入/输出格式(时间):输入格式: TIMEw. 和输出格式: TIMEw.d hh:mm:ss.ss(时:分:秒.百分秒)源数据日期 输入格式 SAS日期值 输出格式 输出表示13:40:35.37 time11. 49235.37 time11.2 13:40:35.37

16、13 40 35.37 time11. 49235.37 Time2. 1313/40/35.37 time11. 49235.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 PM2、SAS变量输入/输出格式(日期时间):输入格式: DATETIMEw. ddmmmyy hh:mm:ss.ss 或 ddmmmyyyy hh:mm:ss.ss 输出格式: DATETIMEw.d ddmmmyy:hh:mm:ss.ss

17、或 ddmmmyyyy:hh:mm:ss.ss 2、SAS变量变量列表: x1 x2 x3 xn 简写为x1-xn A B C D 简写为A-D V X TD UP JPP 简写为V-JPP2、SAS变量表达式是由运算符和运算对象形成的指令集3、SAS表达式1.SAS常数 数值常数: 110 -0.35 1.8E3 0.5E-10 字符常数: Smith 23 John Smith 日期,时间和日期时间常数: 13JUL2001d 22:23t 13JUL2001:22:23:25DT2.SAS运算符: 算术运算符: *(乘方) * / + - 比较运算符: = (eq) =(ne) (gt)

18、 =(ge) (取小) (取大) |(连接)表达式是由运算符和运算对象形成的指令集3、SAS表达式3.运算次序: 括号内的表达式先算优先级(见下面)相同优选级别的算符,按顺序,先左后右表达式是由运算符和运算对象形成的指令集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,

19、z)B=min(sum(of x y z),1000)4、SAS函数2.SAS函数的返回值: 返回值为: 数值型 字符型 其返回值的类型一般可通过自变量的类型加以判断(但有个别有例外,如PUT函数,总是输出字符型)4、SAS函数3.SAS函数的分类:SAS函数分为十七类:算术函数、数组函数、截取函数、数学函数、三角和双曲函数、概率函数、分位数函数、非中心函数、样本统计函数、随机数函数、财政金融函数、逐位逻辑操作函数、数字函数、字符函数、日期和时间函数、洲和Zip码换算函数和特殊函数。4.与统计有关的SAS函数4、SAS函数1.概率函数: SAS系统提供了10个常见分布的概率函数,其定义为: 在

20、下面的函数均表示求这些分布函数的值。其中DF表示自由度,NC表示非中心参数值,NDF表示分子自由度,DDF表示分母自由度,其余参数为相关分布的参数项。 4.与统计有关的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)

21、表示NN件产品,其中有K件不合格品,随机地从NN件中抽取N件,这N件中不合格品的个数服从该分布.该函数给出N件品中不合格品的个数=X的概率. 参数OR是不匀率. K=0是有效的值(即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-PR

22、OBT(2.4,8);/*求自由度为8的P|t|2.4*/RUN; 在SAS系统中操作4.与统计有关的SAS函数4、SAS函数2.分位数函数:2分布的分位数 CINV(p,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);/*求自由度

23、为(2,10)的F分布的2.5%分位数Q1*/Q2=FINV(0.975,2,10);/*求自由度为(2,10)的F分布的97.5%分位数Q2*/Q3=FINV(0.95,2,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的素数发生器

24、,seed必须是小于模231-1任何常数。标准正态分布随机数 NORMAL(seed) RANNOR(seed)一般正态分布N(,2)可由如下变换得到: 4.与统计有关的SAS函数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.随机数函数:伽马分布随机数 R

25、ANGAM(seed,).它用组合法产生参数为非整数的GAMMA随机数.非整数可表示为整数部分和小数部分的和:=+(-).用逆变换方法产生参数为整数的GAMMA随机数X1,用舍选法产生参数为小数(-)的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=RANG

26、AM(seed,),则Y=Y1/(Y1+Y2)是参数为和的贝塔分布随机数4.与统计有关的SAS函数4、SAS函数3.随机数函数:三角分布随机数 RANTRI(seed,h) 0h1 其密度函数为: 的三角分布随机数.对一般区间a,b上的三角形分布随机数Y,可由0,1区间上三角形分布的随机数的线性变换得到.即: Y=(b-a)*RANTRI(seed,h)+a h=(c-a)/(b-a) ca,b4.与统计有关的SAS函数4、SAS函数3.随机数函数:柯西分布随机数 RANCAU(seed) 用舍选法产生 Y=+*RANCAU(seed),则Y是位置参数为,尺度参数为的一般柯西分布随机数二项分布

27、随机数 RANBIN(seed,n,p)波松分布随机数 RANPOI(seed,)离散分布随机数 RANTBL(seed,p1,p2,pn) 此函数产生一个由p1到pn定义的概率密度函数的变量.它返回数值1,2,3,n,且具以下概率分布: 1 2 3 n p1 p2 p3 pn4.与统计有关的SAS函数4、SAS函数3.随机数函数:关于种子数(seed): 当SEED0时,则取系统当前的日期时间值作为初始值随机数函数每次执行时虽然当前的种子不断变化,但自变量SEED的值保持不变.因此不可能控制初始化之后的随机数.若想控制随机数流,可使用CALL 子程序 Call ranbin(seed,n,p

28、,x)Call rancau(seed,x)Call ranexp(seed,x)Call rannor(seed,x)Call ranpoi(seed,x)Call rantbl(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

29、) 或 MIN(X,Y,Z,) (注:缺失值不含在内)非缺失值的个数 N(OF X1-Xn) 或 N(X,Y,Z,)缺失数据的个数 NMISS(OF X1-Xn) 或 NMISS(X,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,)(注:缺失值不含在

30、内)变异系数 CV(OF X1-Xn) 或 CV(X,Y,Z,)(注:缺失值不含在内)极差 RANGE(OF X1-Xn) 或 RANGE(X,Y,Z,)(注:缺失值不含在内)偏差平方和(校正平方和) 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、

31、DATA步流程编译阶段(Compilation Phase): 语法检查。若出现严重错误,则停止执行。 将程序转换为机器码,代执行阶段使用 建立工作部件,输入缓冲器(Input Buffer) 建立工作部件PDV( Program Data Vector ) 确定数据集中各个变量的三个必须的属性:变量名,类型,长度 建立新建数据集的描述部分编译阶段和执行阶段1、DATA步流程编译阶段(Compilation Phase): 语法检查的主要内容: 漏掉或错拼的关键词 无效的变量名 遗漏或错误的符号 无效的选择项 编译阶段和执行阶段1、DATA步流程编译阶段(Compilation Phase):

32、 在内存中建立程序数据矢量PDV 用于建立SAS系统的数据集,一次只处理一个观测 两个自动变量 _N_ 记录DATA步执行的次数 _ERROR_指示出错信息. 0表示无错误,1表示有错误PDV的一般格式: |_N_|_ERROR_| | 编译阶段和执行阶段1、DATA步流程编译阶段(Compilation Phase): 建立数据集的描述部分 数据集名 观测数和变量个数 变量名及其属性编译阶段和执行阶段1、DATA步流程执行阶段(Execution Phase): 创建数据集的数据部分 执行顺序 PDV中外部为题初始化为缺省值输入每条记录至输入缓冲器,按INPUT语句读至PDV按数据步的其它语

33、句处理后存入PDV在数据步结束时缺省地将PDV的内容作为一条观测 写入新的数据集回到数据步的开始.使PDV中外部变量初始化为缺省值对源文件中每条记录都按上述步骤执行一次当对源文件最后一条记录执行结束后,数据步执行完成. 编译阶段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;

34、程序数据矢量|_N_|_ERROR_|SEX|FATPCT|FAT| | | | | |数据集名:bodyfat 变量的个数(从PDV中可知) 观测个数(执行到RUN时也已知) 变量名及属性(从PDV中可知)执行阶段1、DATA步流程data 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;car

35、ds;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; 程序数据矢量|_N_|_ERROR_|SEX|FATPCT|FAT| 1 | 0 | M | 13.3 | 0.133 |将 M 13.3 0.133写入数据集bodyfat 一个观测被处理完后,这时SAS系统首先将程序数据矢量中的数据写入数据集中(两个自动变量的值并不写入,此值可在其他编程是使用),同时SAS系统将控

36、制又返回到DATA步的开头,程序开始第二个观测的处理,此过程一直到没有观测要处理为止。 1、DATA步流程 本章目录 常用的有三种方式:自由格式、列方式、规定格式2、INPUT语句自由格式:输入格式 input 变量名1$ 变量名2$ | ;特点: 输入的数据之间至少要用一个空格隔开 input中定义的变量顺序应与数据区中数据值对应 一行一条观测(无| 选项时) 常用的有三种方式:自由格式、列方式、规定格式2、INPUT语句自由格式:例子data A; input sex $ fatpct; cards;M 13.3 F 22 M 19 F 26run;数据集A中的数据Sex fatpctM

37、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 88data B; input x; input y; cards;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 常用的有三种方式:自由格式、列方式

38、、规定格式2、INPUT语句列方式:输入格式 input 变量名 $ 起始列-终止列 ;特点: 输入的数据按固定的格式排列 可将含空格的字符串赋值给字符型变量 可只读取数据区中某些数据 常用的有三种方式:自由格式、列方式、规定格式2、INPUT语句列方式:已知数据为 1 2 3 1-5-0-5-0-5-0 张 军01APR75男807984 王卫红24OCT78女959689input 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 1

39、8-19; 常用的有三种方式:自由格式、列方式、规定格式2、INPUT语句规定格式:输入格式 input 位置控制指针 变量名 $ 读入格式 ;特点: 适用于字段固定格式的数据 给出字段开始列数,通过输入格式给出读入长度 可设定输入格式 常用的有三种方式:自由格式、列方式、规定格式2、INPUT语句规定格式:位置控制指针n 表示将输入指针移动到第n列,这是指针的绝对位置移动+n 表示将输入指针向后移动n列,这是指针的相对移动 读入格式(见前面所述) 常用的有三种方式:自由格式、列方式、规定格式2、INPUT语句规定格式:例 已知数据为 1 2 3 1-5-0-5-0-5-0 张 军01APR7

40、5男807984 王卫红24OCT78女959689input 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.; 为了对数据进行分析,有时还要对以有的数据集进行整理,如提取需要处理的变量或观测等,这样才能满足各种分析的要求 3、数据集的整理常用的操作有: 赋值 累加 语句DROP,KEEP,IF,DO END 赋值语句 它是将某个SAS表达式的值赋给变量,其格式为:变量=表达式。若变量已经存在,则表示对该变量的值进行修改,否则表示建立一个新变

41、量 3、数据集的整理累加语句 格式为:累加变量+表达式,它表示把表达式的结果加到累计变量中。注意累加变量只能是数值型变量,且最好将表达式用小括号括起来,即累加变量+(表达式)。在第一个观测被读取之前,其值被自动置0,若表达式为缺失值,则将表达式当作0处理 DROP和KEEP语句 格式为: DROP 变量表 表示将所列的变量不输出到所建立的数据集。 KEEP 变量表 表示将所列出的变量输出到所建立的数据集。 3、数据集的整理这两种方法事实上可达到同样的效果,即选择数据集中的变量。这两种形式要看哪种方便就用哪个,若要保留的变量少,可直接用KEEP=语句,这样等式右边列出的变量个数少,比较方便;若不

42、需要的变量少,用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 PHY ENG TOTAL TENG;替代。*/cards;张 军01MAR75男807984王卫红24JUL78女959689run; 输出结果 OBS NAME MATH PHY ENG TOTAL TENG 1 张 军 80 79 84 159 84 2

43、 王卫红 95 96 89 191 173条件语句 IF条件语句 格式为: IF 条件表达式 THEN SAS语句; ELSE sas语句; 其意义为如果条件表达式为真(其值非0),则去执行THEN后面的SAS语句。若条件表达式为假(其值为0),则去执行ELSE后面的SAS语句(当ELSE选项存在时)或下一条SAS语句(ELSE语句不存在时)。3、数据集的整理条件语句子集IF语句 格式为: IF 条件表达式; 它表示当条件表达式为真时,SAS系统对正被处理的观测继续执行IF语句后面的语句;若表达式为假,则返回执行下一个DATA步 3、数据集的整理循环语句简单DO语句 格式: DO; 多个sas

44、语句; 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 SEX=男 THEN PHY=PHY-4;IF SEX=男 THEN TOTAL=SUM(MATH,PHY); 循环语句循环DO语句 格式: DO 循环变量=初值 TO 终值 BY 步长; 若干SAS语句;(循环体) END;3、数据集的整理括号内

45、的终值和步长均为可选项,当无步长时,其值为1,当无终值时,循环体中至少有一语句控制循环的结束,否则就为一死循环.其执行过程是,循环变量在取得初值后,结合步长方向,同终值进行比较,若没有超过终值,则执行一次循环体,循环变量增加一个步长,继续下一轮的执行,直到循环变量超过终值为止.要注意在循环体内不要对循环变量进行操作,以免出现死循环,另外循环变量也会被写到所建的数据集,若不需要,可用DROP语句将其删除. 循环语句循环DO语句 格式: DO 循环变量=值1,值2,值3,; 若干SAS语句;(循环体) END;3、数据集的整理如:Do I=2 to 10 by 2;Do j=10 to 2 by

46、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、数据集的整理此循环语句执行的过程是:当条件表达式为真时,执行循环体,直到条件表达式为假为止.它是先判断条件,再执行循环体 循环语句循环DO UNTIL语句 格式: DO UNTIL 条件表达式; 若干SAS语句;(循环体) END;3、数据集的整理它首先执行循环体一次,之后再进行条件的判断, 若条件为假,则继续下一次循环,

47、若条件为真,则循环结束 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 NAME MATH PHY ENG TOTAL TENG;替代。*/cards;张 军01MAR75男807984王卫红24JUL78女959689run;一次产生两个数据集:数据集CM中只含男性的观测,数据集CF中则只含有性别为女的观测

48、3、数据集的整理注释语句 一个好的编程习惯是对程序进行恰当的注释,以防止遗忘和增加可读性. 给程序加注释的格式有两种: * 注释内容;整句注释(后面的;号不能少)/* 注释内容 */ (任意内容注释) 4、数据集的连接与合并ABABABAB连接合并+4、数据集的连接与合并连接数据集的连接 数据集的连接是将数据集纵向连接起来,其主要目的给数据集追加观测。这一功能可由SET语句完成,其格式如下:SET 数据集1(选项) ;常用的选项有:KEEP=变量表 只打开由变量表中所列出的变量. DROP=变量表 变量表中所列出的变量将不被打开。 FIRSTOBS=n1 从第n1个观测开始以后的观测将被选入新

49、建数据集. 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 949706 zhuming 96 87 86run;data B;input no name$ math phi chem geo; Cards;9701 wanglei 90 86 89 769702 wanghao 98 97

50、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 phi chem geo9701 wanglei 90 86 89 769702 wanghao 98 97 69 729704 zhuzhun 88 76 78 689705 chaoyin 64 85 76 664、数据集的连接

51、与合并连接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 wanglei 90 86 6 9702 wanghao 98 97 7 9704 zhuzhun 88 76 8 9705 chaoyin 64 854、数据集的连接与合并连接若不用选项,直接使用,其结果如下:data C1; set A

52、 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 wanghao 98 . . 97 69 72 7 9704 zhuzhun 88 . . 76 78 68 8 9705 chaoyin 64 . . 85 76 664、数据集的连接与合

53、并合并数据集的合并是将不同数据集中的观测合并成一个新的观测。可用MERGE语句实现此目的 一对一合并 它是将多个数据集中第一条观测合并成新数据集的第一条观测,第二条观测合并成新数据集的第二条观测,等等,没有的用缺失值替代 4、数据集的连接与合并合并data AA;input x1 x2 ;cards;1 27 84 5;data BB;input x1 y1 y2;cards;11 22 3344 55 66run;data aabb;merge AA BB;run;数据集AA: x1 x2 1 2 7 8 4 5数据集BB: x1 y1 y2 11 22 33 44 55 66merge数据

54、集aabbobs x1 x2 y1 y21 11 2 22 332 44 8 55 663 4 5 . . 4、数据集的连接与合并合并匹配合并 这种合并是按某一公共变量的值进行横向连接,其做法是首先对公共变量进行排序,然后再进行合并。 4、数据集的连接与合并合并匹配合并data A; input no name$ math phy eng; cards;9701 wanglei 90 86 799702 wanghao 98 97 909703 gudexian 87 86 949706 zhuming 96 87 86run;data B;input no name$ math phi ch

55、em geo; Cards;9701 wanglei 90 86 89 769702 wanghao 98 97 69 729704 zhuzhun 88 76 78 689705 chaoyin 64 85 76 66run;proc sort data=a;by no;run;proc sort data=b;by no;run;data C;merge A B;by no;run;本章目录4、数据集的连接与合并合并匹配合并 OBS NO NAME MATH PHY ENG PHI CHEM GEO 1 9701 wanglei 90 86 79 86 89 76 2 9702 wangh

56、ao 98 97 90 97 69 72 3 9703 gudexian 87 86 94 . . . 4 9704 zhuzhun 88 . . 76 78 68 5 9705 chaoyin 64 . . 85 76 66 6 9706 zhuming 96 87 86 . . .5、SAS与外部数据的交换设e:example 目录下有以下三个文件EX1.DBF、EX2.XLS、EX3.TXT,则三者分别与SAS之间进行文件转换如下 编程方式dbf文件转换成SAS数据集SAS数据集转换成dbf文件filename ex1 e:exampleex1.dbf;proc dbf db3=ex1

57、OUT=DBF2SAS;run;filename ex11 e:examplesas2dbf.dbf;proc dbf db3=ex11 data=DBF2SAS; run; 5、SAS与外部数据的交换设e:example 目录下有以下三个文件EX1.DBF、EX2.XLS、EX3.TXT,则三者分别与SAS之间进行文件转换如下 编程方式EXCEL文件转换为SAS数据集SAS数据集转换为EXCEL文件filename ex2 e:exampleex2.xls;proc dbf db3=ex2 OUT=XLS2SAS;run; filename ex22 e:exampleSAS2XLS.xls

58、;proc dbf db3=ex22 data=XLS2SAS;run;5、SAS与外部数据的交换设e:example 目录下有以下三个文件EX1.DBF、EX2.XLS、EX3.TXT,则三者分别与SAS之间进行文件转换如下 编程方式文本文件转换为SAS数据集SAS数据集转换为文本文件 设文本文件的内容如下: 9701 wanglei 90 86 9702 wanghao 98 97 9703 gudexian 87 86 9706 zhuming 96 87则:filename ex3 e:exampleex3.txt;data txt2sas; infile ex3; input no

59、name$ math phy;run;DATA _null_; /*表示不建数据集, _null_为SAS的关键词 */SET TXT2SAS;FILE E:EXAMPLESAS2TXT.TXT;/*指出存放的文件位置*/PUT NO 4. NAME8. MATH 2. PHY2. ;/*存在文件中的变量及格式*/RUN; 5、SAS与外部数据的交换设e:example 目录下有以下三个文件EX1.DBF、EX2.XLS、EX3.TXT,则三者分别与SAS之间进行文件转换如下 菜单方式外部数据文件转成SAS数据集(将hald.xls转成SAS数据集)MEANS过程1 描述性统计及SAS相关过程

60、MEANS过程的格式及语句说明 1.格式PROC MEANS 选择项; VAR 变量表; BY 变量表; CLASS 变量表; FREQ 变量表; WEIGHT 变量; ID 变量表; OUTPUT OUT=SAS数据集 统计量关键词=变量名表必需的语句可选择语句MEANS过程的格式及语句说明 2.语句说明 选择项 DATA=SAS数据集名,指明进行分析的数据集名,其缺省值为最近建立的SAS数据集。NOPRINT不打印任何描述性统计量。此选项多用在将描述性统计量输出到SAS数据集时。 缺省时的规定输出描述统计量,即PRINT选项。MAXDEC=n指定输出结果小数部分的最大位数,n的取值范围为0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论