第二章 Sas语言基本概念

上传人:daj****de 文档编号:163852379 上传时间:2022-10-23 格式:DOCX 页数:15 大小:63.80KB
收藏 版权申诉 举报 下载
第二章 Sas语言基本概念_第1页
第1页 / 共15页
第二章 Sas语言基本概念_第2页
第2页 / 共15页
第二章 Sas语言基本概念_第3页
第3页 / 共15页
资源描述:

《第二章 Sas语言基本概念》由会员分享,可在线阅读,更多相关《第二章 Sas语言基本概念(15页珍藏版)》请在装配图网上搜索。

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

2、和数据分析处理模块过程步(PROC St ep)。在一份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;I

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

5、ords)关键字是系统已赋于确定意义的一个单词。在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数据集是一个数据值构成的矩形表。它的行叫观测(Observation

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

8、SAS数据集中,每一列用一 个变量名标识并且这一列数据值的全体构成该变量值的部分或全体。 SAS 数据集的一列也 称为一个变量。数据集的列数就是该数据集所包含的变量个数。换言之,数据集的一个观 测里包含着数据集的所有变量的一个取值。变量表示观察客观实体的一个属性。2.3.4 SAS 数据集存储空间的计算在 SAS 中,数据量的大小仅受设备容量的限制。 一个数据集所占用的存储空间可以用 如下公式计算:(218+(V*106) + (0bs*(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.

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

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

12、S进行数 据分析处理时,允许数据缺值。下面介绍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 与

14、 k 中间的符号是减号) 表示上述五个变量。a-k则表示a,y,b和k这四个变量。(2) 在程序中引用的一组变量名字的前部分字符相同而后部分符号是连续的自然数时,也可以用缩写符号引用变量。例如程序中定义了 x ,x ,x ,x ,x,则可以用记号x - x来1 2 3 4 5 1 5 引用上述五个变量。对于这种情形,当变量第一次出现(包括定义)时也可以使用缩写记号。 也就是说,在程序中若第一次出现 x -x ,那么,就意味着程序中定义了 n 个变量 1nx ,x,X。1 2 n2.6 SAS 函数像多数高级语言一样, SAS 提供了丰富的标准函数。 SAS 函数书写格式为: 函数名(参数表)其

15、中函数名为 SAS 关键字,参数表给出函数所要求的一个或多个参数。SAS 函数的类型有:算术、截尾、三角、双曲线、概率、分位数、样本统计、随机数、 字符、日期时间和一些特殊函数。2.6.1 函数的参数函数参数可以是变量名,数值或字符常量(字符常量是带引号的一串字符)、也可以是 一个表达式。函数参数可以是一个或多个。多参数函数有如下三种书写形式:(1) 将所有参数列入括号内并用逗号分隔。(2) 参数变量名的尾部是有序整数时,可以写成(OF参数变量1-参数变量n)。(3) 将所有参数列出并用空格分隔,前面冠以OF,即(OF参数变量1参数变量2 . 参数变量 n) 。例2.1设x ,x,,x和y ,

16、y,,y是函数1的参数。x,y和z是函数2的参数。6710如下书写形式是正确的:函数 1(OF x x y y )6 io函数 2(x,y,z)函数 3(OF x y z)而下列书写是错误的:函数 1(x x y y )6 10函数2(x y z)函数 3(xyz)函数 K X1 - Xn,y6 -J2.6.2 函数值除了个别特殊情况,多数函数值的类型与其参数类型是一致的。数值函数值的默认长 度为 8 个字节,字符函数值的默认长度是200 个字符。2.6.3 函数的几点说明1. 函数不能直接用在 PUT 语句中。2. 注意函数参数的取值范围,例如对数函数的参数值要大于零等。3. 除样本统计函数

17、外,多数函数不许以缺值(Missing Value)为其参数。4. 对于某些概率函数,若参数选择不当,可能引起不收敛的问题, 在这种情况下 函数值为缺值并给出错误信息。2.6.4 算术函数1. 取x的绝对值:ABS(x)。2. 取x ,x,x中的最大值:MAX(x ,x,x )。12n12n3. 取x ,x,x中的最小值:MIN(x ,x,x )。12n12n4. 取以x为模x的余:MOD(x ,x )。2 1 1 25. 取 x 的符号: SIGN(x)。6. x 的平方根: SQRT(x)。7. 取数组元素的个数或指定维的下标取值个数。设x为一已定义了的数组名,当x为 一维数组时,DIM(

18、x)的值为x的元素个数。当x为多维数组时,DIM(x)的值为x的第一维 下标取值的个数,DIMn(x)为x的第n维下标取值的个数,其中n为正整数。设已定义了多 维数组 ARRAY m(3,10,4) ml-ml20,则 DIM(m)和 DIM1(m)的值是 3,DIM2(m)的值是 10,DIM3(m) 的值是4。2.6.5 数学函数1. 双伽码函数:DIGAMMA(x),是伽码函数的导数与伽码函数之比:2. 误差函数:ERF(x),其值为-f e-zdz。利用该函数可以求均值为0,标准差为1兀的正态分布的随机变量小于x的概率。3. 误差函数ERF(x)的补函数:ERFC(x),其值为l-ER

19、F(x)。4. EXP(x)表示ex,其中e是自然对数的底。5.全伽码函数:GAMMA(x),其值为r tx-1e-tdt06. 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的最大整数:FLOOR(x)。3. 截去x的小数部分取整:INT(x)。4. 以y作为舍入单位,将x四舍五入:ROUND(x,y), y的默认值为1。2.6.7 三角和双曲函数1. x 的余弦:COS(x)。2.

20、 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.计算卜,x ,x的校正平方和:CSS(F ,x,,x|),其值为Y (x X)2,其中i=1x为兀,x,,x的平均值。2.计琲,x,,x|的变异系数:CV(|x ,x ,x|),其值为Xx 100,S为标准差,x X为均值。3.4.计算

21、F ,X,,X |的极差:RANGE(F,X2,x )。计算X , X ,x的平均值:MEAN(k , X ,x )。5.6.计算X,X ,x的标准差:STD(X,X ,x )。计算均值的标准误:STDERR(x,X,,X )。7.求和:SUM(卜,x,,x|)。8.计算方差:VAR(X ,x ,,x )。2.6.9 概率函数1. 泊松分布的概率值:POISSON(入,n),计算服从泊松分布的观测值小于n的概率, 入是平均参数值,其中0W入,OWn。2. B分布的概率值:PROBBETA(x,a,b), a和b是B分布的形状参数。其中0WxWl与 Oa,b。3. 二项分布概率值:PROBBNM

22、L(p,n,m),求带有参数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. Y分布的概率值:PROBGAM(x,a),计算形状数为a的丫分布的随机变量落在给定 值 x 之下的概率。7. 超几何分布概率值:PROBHYPR(nn,k,n

23、,x,or),计算总样本数为nn,边界参数为n 和k,机会比率为or的超几何分布的观测值小于等于x的概率。or的默认值为1,其中1 W nn,OW kW nn,OW nW nn, max(O,k+n-nn) W xW min(k,n) 。&负二项分布概率值:PROBNEGB(p,n,m)计算有参数p和n的负二项分布的观测值小 于等于m的概率,二项概率参数是p, n是负二项分布的度数。其中0WpW1, 0n和0Wm。9. 正态分布概率值:PROBNORM(x),计算正态(0,1)分布的随机变量落在给定值x之下 的概率。10. t分布函数概率值:PROBT(x,df,nc),计算自由度为df的满足

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

25、irthday+1)5) 1-EXP(n/(n+1)6) 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是一种实用的方法。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!