ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:88.47KB ,
资源ID:10229088      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10229088.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第二章 Sas语言基本概念.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第二章 Sas语言基本概念.docx

1、第二章 Sas语言基本概念第二章 SAS语言基本概念2.1 SAS语言概述 SAS提供了一套完善的编程语言。类似于多数计算机高级语言,使用SAS的用户只需要熟悉其命令、语句及简单的语法规则就可以做数据管理和分析处理工作。因此,掌握SAS编程技术是学习SAS的关键环节。在SAS中,把大部分常用的复杂数据计算的算法作为标准过程来调用,用户仅需要指出过程名及其必要的参数。这一特点使得SAS的编程十分简单。 SAS程序是SAS语句的有序集合。本书的以后章节中将逐一介绍SAS的主要语句。 如果以程序段的功能将SAS程序划分成多个模块的话,那么, 这些模块分为两类:数据准备模块-数据步(DATA Step

2、)和数据分析处理模块-过程步(PROC Step)。在一份 SAS程序中可能有多个数据步和多个过程步,通常的情形为一个数据步和一个过程步。 图 2.1 SAS程序中数据流向示意图数据步的作用是把数据源中的数据作为输入,经过整理加工后输出到一个或多个叫做“SAS数据集(SAS Data Set)”的特殊文件中去。 数据源可能是DOS的ASCII码文件, 也可能是直接写在SAS源程序中尾随CARDS语句之后用空格分隔的一批数据(数据行),还可能是已经存在的SAS数据集。 在过程步中,可以调用一个或多个标准过程。过程步是把由数据步建立和产生的数据集中的数据作为输入, 经标准过程计算处理后, 将结果以

3、清晰的表格或图形方式输出到输出窗口或写入磁盘文件。粗略地说,数据步是为过程步准备数据的,并且将准备好的数据放在数据集中。过程步是把指定数据集中的数据经计算处理后并输出结果。图2.1 给出在一个数据步和一个过程步组成的SAS程序中数据流向示意图。2.2 SAS 语句SAS语句是以SAS关键词开头、后跟SAS名、特殊字符或操作符组成,并且以分号结尾。一个SAS语句规定了一种操作或为系统提供某些信息。下面是一些SAS语句的例子:PUT x $15.; DATA one; FORMAT value1 abcd; PROC MEANS DATA=store.supply MAXDEC=3; INFILE

4、 rawdata ; DO i=1 TO DIM(eachitem); key1: total+1; 在这七个语句中,x,value1,total和i是变量;one和store.supply是数据集名;store是逻辑库名;$15.是输出格式;abcd 是格式名; MEANS 是一个过程名; DATA= 和MAXDEC=是过程MEANS的选项;rawdata是一个文件逻辑名;在DO语句中,DIM( ) 是一个函数名,作为函数DIM( ) 参数的eachitem是一个数组名;key1是一个语句标号;total+1是一个累加语句,这里包含了一个常数1。2.2.1 SAS关键字(SAS Keywor

5、ds) 关键字是系统已赋于确定意义的一个单词。在SAS的程序中,除了赋值、求和、 注释和空等语句外,多数语句是以其关键字作为开头的。如上例中的PUT、DATA、FORMAT、PROC、 INFILE和DO都是相应语句的关键字。2.2.2 SAS名(SAS Names) 在SAS语句中,可能出现的SAS名有变量名、数据集名、输出格式名、过程名、选择项名、数组名和语句标号名。还有SAS对文件的一种特殊称呼叫逻辑库名和文件逻辑名。SAS名是以字母或下划线开头后跟字母或数字或下划线的字符串,字符个数不多于八个。空格和特殊字符(如$,#等)不许在SAS名中出现。另外,SAS保留了一些特殊的变量名并赋于特

6、定的意义,这些变量都是以下划线开头和结尾,如_N_ 表示当前数据步已执行过的次数。2.2.3 本书的语句描述记号 (1) 大写英文是关键字,在写程序时,这些词必须严格以给出的拼写形式书写。 (2) 小写英文和汉字指定的项目由程序员提供。 (3) 内的项是可选项。 (4) .表示有多个项目。2.3 SAS数据集 “SAS数据集(SAS Data Set)”是SAS的一种特定的数据文件。它是由SAS 程序的数据步或者交互方式产生的,SAS数据集是过程步的输入。SAS数据集是一个数据值的集合。形象的讲,SAS数据集是一个数据值构成的矩形表。它的行叫观测(Observations),列叫变量(Vari

7、ables)。表 2.1是SAS数据集的一个直观显示。 表2.1 数据集观测变量 1变量2变量3变量4.1数据值数据值数据值数据值.2数据值数据值数据值数据值.3数据值数据值数据值数据值.2.3.1 数据值(Data Values) 数据值是SAS处理的最基本的数据单元,在例1.1中不同处理不同盆下测得的每一个含氮量值是一个数据值。数据值有两种类型:数值型和字符型。2.3.2 观测(Observations) 数据集的一行是一个观测。通常,一个观测的多个数据值描述了一个客观实体的多个特征。2.3.3 变量(Variables) 变量是用SAS名标识的具有相同性质的数据值的集合。在SAS数据集中

8、,每一列用一个变量名标识并且这一列数据值的全体构成该变量值的部分或全体。SAS 数据集的一列也称为一个变量。数据集的列数就是该数据集所包含的变量个数。换言之,数据集的一个观测里包含着数据集的所有变量的一个取值。变量表示观察客观实体的一个属性。2.3.4 SAS数据集存储空间的计算 在SAS中,数据量的大小仅受设备容量的限制。 一个数据集所占用的存储空间可以用如下公式计算: (218+(V*106)+(Obs*(TVL+4)字节 其中:V是变量个数;Obs是观测个数;TVL是所有变量的长度之和, 以字节为单位。例如一数据集有10个观测,2个变量,每个变量的长度是8个字节,则这个数据集总的存储空间

9、为(218+(2*106)+(10*(16+4)=630字节 2.4 变量的属性 SAS变量的类型有数值型(NUMERIC)和字符型(CHARACTER)。变量具有长度、 输入输出格式和标号等属性。变量的属性可以经由其首次出现的上下文给出定义,所谓由上下文给出定义是指当变量第一次出现并且是在INPUT、PUT、ARRAY、赋值、求和、DO、 RETAIN和WINDOW等语句中时,它们的属性将被定义。变量的属性还可以用LENGTH、 ATTRIB 、 FORMAT 、INFORMAT和LABEL等专用语句明确给定。表2.2给出SAS变量的属性、 取值及有关定义。表 2.2 SAS变量属性变量属性

10、可能值默认值定义语句类型数值或字符数 值LENGTH/ATTRIB长度数值3-8字节8字节LENGTH/ATTRIB字符1-200字符8字符输入格式数值见有关INFORMAT/ FORMAT语句的章节w.INFORMAT/ATTRIB字符$w.输出格式数值w.FORMAT/ATTRIB字符$w.标号0-40个字符空 格LABEL/ATTRIB2.4.1 变量类型(Types) 数值型变量(NUMERIC)的值是数值。数值的范围是10-307至10+308。字符型变量(CHARACTER)是以字符串为其值的。一个字符型变量的值最多可达200个字符。 2.4.2 变量的长度(Length) SAS

11、变量长度是指在SAS数据集中存储其每一个值的字节数,默认值是8个字节。 如果不使用默认值,可以用专用语句定义之。 2.4.3 变量的格式标号(Labels) 用LABEL语句可以为变量定义一个标号。这个标号是引号内的任意字符串。 字符个数不超过40,字符串还可以是汉字。变量标号的默认值是空格。标号与变量名一起输出,这样可以提高输出结果的可读性。 2.4.4 数据缺值(Missing Values) 在实际问题中,经常碰到数据不全或数据缺少的问题。例如,某一试验中,有个别数据无法或不可能取得。这些不能得到的数据叫做数据缺值(Missing Values)。SAS 进行数据分析处理时,允许数据缺值

12、。下面介绍SAS对缺值数据的输入输出的表示。 (1) 用INPUT语句自由格式读入数据时,数据源中用一个句点表示一个缺值数据。 用INPUT语句列格式读入数据时,在数据源中用空格表示缺值数据。 (2) 在SAS数据集中用句点表示一个缺值数据。 (3) 在SAS的各种输出中用一个句点表示一个缺值数据。2.5 SAS 程序的书写格式 SAS程序像多数高级语言一样具有灵活的书写格式。2.5.1 空格 SAS 语句可以在一行的任何一列开始书写;一行上可以写几个语句;一个语句可以分成多行。一般情况下,一个语句中不同的语法单位要用空格分隔,但是对于某些特殊字符,可以不用空格分隔。例如下面的两个语句都是合法

13、的SAS语句: t=t+5; t = t + 5 ; 由于SAS对空格的数目没有严格的限制,所以建议程序员将SAS程序写成便于阅读的分层嵌入式。2.5.2 注释 用一对/*与*/符号括起来的字符叫做注释,注释可以出现在程序的任何地方,只需要用空格和其它语句成份分开。2.5.3 变量的缩写记号 对于变量的缩写记号分两种情形来讨论: (1) 在SAS中每一个变量以其在程序中首次出现的先后次序获得一个序号,因此, 在程序中可以用缩写记号来引用这些变量。假设变量x,a,y,b和k先后依次在程序中出现。那么在这些变量出现以后的语句中用记号x-k(x与k中间的符号是减号) 表示上述五个变量。 a-k则表示

14、a,y,b和k这四个变量。 (2) 在程序中引用的一组变量名字的前部分字符相同而后部分符号是连续的自然数时,也可以用缩写符号引用变量。例如程序中定义了,则可以用记号来引用上述五个变量。对于这种情形,当变量第一次出现(包括定义)时也可以使用缩写记号。也就是说,在程序中若第一次出现,那么,就意味着程序中定义了n个变量。2.6 SAS 函数 像多数高级语言一样,SAS提供了丰富的标准函数。SAS函数书写格式为: 函数名(参数表) 其中函数名为SAS关键字,参数表给出函数所要求的一个或多个参数。 SAS函数的类型有:算术、截尾、三角、双曲线、概率、分位数、样本统计、随机数、字符、日期时间和一些特殊函数

15、。2.6.1 函数的参数 函数参数可以是变量名,数值或字符常量(字符常量是带引号的一串字符)、也可以是一个表达式。函数参数可以是一个或多个。多参数函数有如下三种书写形式: (1) 将所有参数列入括号内并用逗号分隔。 (2) 参数变量名的尾部是有序整数时,可以写成(OF 参数变量1-参数变量n)。 (3) 将所有参数列出并用空格分隔,前面冠以OF,即(OF 参数变量1 参数变量2 . 参数变量n)。 例2.1 设和是函数1的参数。x,y和z是函数2的参数。如下书写形式是正确的: 函数1(OF ) 函数2(x,y,z) 函数3(OF x y z)而下列书写是错误的: 函数1( ) 函数2(x y

16、z) 函数3(xyz) 函数1(,)2.6.2 函数值 除了个别特殊情况,多数函数值的类型与其参数类型是一致的。数值函数值的默认长度为8个字节,字符函数值的默认长度是200个字符。2.6.3 函数的几点说明 1. 函数不能直接用在PUT语句中。 2. 注意函数参数的取值范围,例如对数函数的参数值要大于零等。 3. 除样本统计函数外,多数函数不许以缺值(Missing Value)为其参数。 4. 对于某些概率函数,若参数选择不当,可能引起不收敛的问题, 在这种情况下,函数值为缺值并给出错误信息。2.6.4 算术函数 1. 取x的绝对值: ABS(x)。 2. 取中的最大值: MAX()。 3.

17、 取中的最小值: MIN()。 4. 取以为模的余: MOD()。 5. 取x的符号: SIGN(x)。 6. x的平方根: SQRT(x)。 7. 取数组元素的个数或指定维的下标取值个数。设x为一已定义了的数组名,当x 为一维数组时,DIM(x)的值为x的元素个数。当x为多维数组时,DIM(x)的值为x 的第一维下标取值的个数,DIMn(x)为x的第n维下标取值的个数,其中n为正整数。设已定义了多维数组ARRAY m(3,10,4) m1-m120,则DIM(m)和DIM1(m)的值是3,DIM2(m) 的值是10,DIM3(m)的值是4。2.6.5 数学函数 1. 双伽码函数: DIGAM

18、MA(x),是伽码函数的导数与伽码函数之比:。 2. 误差函数:ERF(x), 其值为。利用该函数可以求均值为0,标准差为1 的正态分布的随机变量小于x的概率。 3. 误差函数ERF(x)的补函数:ERFC(x),其值为1-ERF(x)。 4. EXP(x)表示,其中e是自然对数的底。 5. 全伽码函数:GAMMA(x),其值为 6. GAMMA(x)的自然对数值:LGAMMA(x)。 7. x的自然对数:LOG(x)。 8. x的常用对数:LOG10(x)。 9. x的以2为底的对数:LOG2(x)。2.6.6 截尾函数 1. 大于等于x的最小整数:CEIL(x)。 2. 小于等于x的最大整

19、数:FLOOR(x)。 3. 截去x的小数部分取整:INT(x)。 4. 以y作为舍入单位,将x四舍五入: ROUND(x,y),y的默认值为1。2.6.7 三角和双曲函数 1. x的余弦: COS(x)。 2. x的正弦: SIN(x)。 3. x的正切: TAN(x)。 三角函数中的参数x以弧度为单位。 4. x的反余弦: ARCOS(x)。 5. x的反正弦: ARSIN(x)。 6. x的反正切: ATAN(x)。 7. x的双曲余弦: COSH(x)。 8. x的双曲正弦: SINH(x)。 9. x的双曲正切: TANH(x)。2.6.8 样本统计函数 1. 计算的校正平方和:CS

20、S(),其值为,其中为的平均值。 2. 计算的变异系数:CV(),其值为,S为标准差,为均值。 3. 计算的平均值:MEAN()。 4. 计算的极差:RANGE()。 5. 计算的标准差:STD()。 6. 计算均值的标准误:STDERR()。 7. 求和:SUM()。 8. 计算方差:VAR()。2.6.9 概率函数 1. 泊松分布的概率值:POISSON(,n),计算服从泊松分布的观测值小于n 的概率,是平均参数值,其中0,0n。 2.分布的概率值:PROBBETA(x,a,b), a和b是分布的形状参数。其中0x1 与 0a,b。 3. 二项分布概率值:PROBBNML(p,n,m),求

21、带有参数p和n的二项分布中的观测值小于等于m的概率,p是概率参数,n是自由度。 4. 卡方分布的概率值:PROBCHI(x,df,nc),计算自由度为df, 服从卡方分布的随机变量落在给定值x之下的概率。当nc=0时,计算中心卡方分布,否则nc给出非中心值。 5. F分布概率值: PROB(x,ndf,ddf,nc),计算分子自由度为ndf, 分母自由度为ddf的F分布的随机变量有给定x值的概率。其中nc的意义同4。 6.分布的概率值: PROBGAM(x,a),计算形状数为a 的分布的随机变量落在给定值x之下的概率。 7. 超几何分布概率值:PROBHYPR(nn,k,n,x,or),计算总

22、样本数为 nn,边界参数为n和k,机会比率为or的超几何分布的观测值小于等于x的概率。or的默认值为1,其中 1nn,0knn,0nnn,max(0,k+n-nn)xmin(k,n)。 8. 负二项分布概率值:PROBNEGB(p,n,m)计算有参数p和n的负二项分布的观测值小于等于m的概率,二项概率参数是p,n是负二项分布的度数。其中0p1,0n和0m。 9. 正态分布概率值:PROBNORM(x),计算正态(0,1)分布的随机变量落在给定值x之下的概率。 10. t分布函数概率值:PROBT(x,df,nc),计算自由度为df的满足学生t分布的随机变量小于给定的x值的概率。nc的值为零时,

23、计算中心t分布,否则nc为非中心值。 SAS语言还提供了分位数计算、随机数产生、财经计算、字符处理、 日期时间等多个标准函数,限于篇幅,这里不一一列出,读者可查阅本书附录。2.7 SAS表达式 SAS表达式是由操作符和圆括号连接各种操作数而成的符号串。 系统处理表达式可得到一个值,这个值可能是一个数或一个字符串或一个缺值。操作符包括算术运算符、比较符(关系符)、逻辑运算符、字符运算符和一些特殊的操作符;操作数包括各种变量、常量和函数。下面是一些表达式的例子: 1) n+1 2) 5 3) LOG(5)+1 4) INT(year-birthday+1) 5) 1-EXP(n/(n+1) 6)

24、score大于GT小于=大于或等于=GE=小于或等于 取两边量中最大者。 取两边量中最小者。 |或|或! 将其两边的字符连接起来。2.7.3 操作符的执行优先顺序 一个SAS表达式可能同时含有多种多个操作符,各种操作符的执行优先顺序规定如下: 规则1: 括号内优先 规则2: 具有较高优先级的操作先执行,优先级次序如下: 组1: *,正负号,NOT, 组2: *,/ 组3: 加法,减法 组4: 字符连接(|或!) 组5: ,=, 组6: AND 组7: OR 规则3: 组号小者优先级高.具有相同优先级的操作依从左到右的原则。2.7.4 表达式的几点说明 (1) 不等式可以连写 abc 等价于 ab AND bc (2) 数值操作符连接字符时,系统先将字符量转换成数字量,而后运算。 (3) 字符操作符连接数值量时,系统通过使用输出格式BEST12(见输出格式章节)将数值量转换成字符量,而后运算。 (4) 赋值语句中的左部变量与表达式的类型不匹配时, 先将表达式的值转换成左部变量的类型而后赋值。 (5) 在做相等比较时,应注意到由于机器误差带来的微小误差。适当的使用截尾函数 INT和ROUND是一种实用的方法。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1