统计211

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3094|回复: 0
打印 上一主题 下一主题

SAS语言的简单概述

[复制链接]
跳转到指定楼层
1
发表于 2011-7-1 13:12:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  SAS提供了一种完善的编程语言。类似于计算机的高级语言,SAS用户只需要熟悉其命令、语句及简单的语法规则就可以做数据管理和分析处理工作。因此,掌握SAS编程技术是学习SAS的关键环节。在SAS中,把大部分常用的复杂数据计算的算法作为标准过程调用,用户仅需要指出过程名及其必要的参数。这一特点使得SAS编程十分简单。
  一、SAS程序
  SAS程序是SAS语句的有序集合。
  SAS程序可分为两部分:
  1.数据步(DATA Step)
  2.过程步(PROC Step)
  在一份SAS程序中,通常有一个数据步和一个过程步.有时可能有多个数据步和多个过程步。
  数据步是为过程步准备数据的且将准备好的数据放在数据集中,过程步是把指定数据集中的数据计算处理并输出结果。
  二、SAS语句
  SAS语句是以SAS关键词开头、后跟SAS名、特殊字符或操作符组成,并且以分号结尾。一个SAS语句规定了一种操作或为系统提供某些信息。
  1.SAS关键字
  关键字是系统已赋于确定意义的一个单词。在SAS语言里,除了赋值、求和、注释等语句外,多数语句是以其关键字作为开头的。
  如DATA、FORMA,PROC、INFILE等都是相应语句的关键字。
  2.SAS名
  在SAS语句中,可能出现的SAS名有变量名,数据集名,输出格式名,过程名,选择项名,数组名和语句标号名。还有SAS对文件的一种特殊称呼叫逻辑库名和文件逻辑名。SAS名是字母或下划线开头后跟宇母或数宇或下划线的字符串,字符个数不多于八个。空格和特殊宇符(如$,@,#等)不许在SAS名中出现。另外,SAS保留了一些特殊的变量名并赋于特定的意义,这些变量都是以下划线开头和结尾,如N_表示数据步已执行过的次数。
  三、语句描述记号
  (1)关键字用英文书写,在写程序时,这些词必须严格以给出的拼写形式书写。
  (2)[]内的项是可选项。
  (3)…表示有多个项目
  四、SAS数据集
  “SAS数据集(Data Set)”是 SAS中一种特定的数据文件。它由 SAS程序的数据步产生并且作为过程步的输入。数据集是一个数据值的集合。形象地讲,数据集是一个数据值构成的矩形表。它的行叫观测(Observations),列叫变量(Variables)。
  五、数据值(Data Values)
  数据值是SAS处理的最基本的数据单元。数据值有两种类型:数值型和字符型。
  六、观测(obsevation)
  一行是一个观测。通常,一个观测的多个数据值描述了一个客观实体的多个特征。
  七、变量( Variables)
  变量是用SAS名标识的具有相同性质的数据值的集合。在SAS数据集中,每一列用一个变量标识,SAS数据集的一列也称为一个变量。数据集的列数就是该数据集所包含的变量个数。换言之,数据集的一个观察里包含着数据集的所有变量的一个取值。变量表示观察客观实体的一个属性。
  八、变量的属性
  SAS变量分为两类:数值型与字符型。每个变量都具有长度、输入、输出格式和标号等四种属性。
  变量的属性可以经由其首次出现的上下文给出定义,所谓由上下文给出定义是指当变量第一次出现并且是在 INPUT、DO、 RETAIN等语句中时,它们的属性将被定义。
  九、变量的值
  数值型变量的值是数值。数值的范围是:
  正负 10E-307正负 10E+308
  字符型变量是以字符串为其值。一个字符型变量的值最多可达200个字符。
  十、变量的格式标号
  用LABEL语句可以为变量定义一个标号。这个标号是引号内的任意字符串。字符个数不超过40,字符串还可以是汉字。变量标号的默认值是空格。标号与变量名一起输出,这样可以提高输出结果的可读性。
  十一、 SAS程序的书写格式
  SAS程序像多数高级语言一样具有灵活的书写格式。
  1.空格
  SAS语句可以在一行的任何一列开始书写;一行上可以写几个语句;一个语句可以分多行。一般情况下,一个语句中不同的语法单位要用空格分隔,但是对于某些特殊字符,可以不用空格分隔。
  由于SAS对空格的数目没有严格的限制,所以建议程序员将SAS程序写成便于阅读的分层嵌入式。
  2.注释
  用一对/* 与 */符号括起来的字符叫做注释,注释可出现在程序的任何地方.
  3.变量的缩写记号
  对于变量的缩写记号分两种情形来讨论:
  (l)在SAS中每一个变量以其在程序中首次出现的先后次序获得一个序号,因此,在程序中可以用缩写记号来引用这些变量。假设变量x,a,b,c和k先后依次在程序中出现。那么在这些变量出现以后的语句中用记号a-k则表示a,b,c和k这四个变量。
  (2)在程序中引用的一组变量名字的前部分字符相同,后部分符号是连续的自然数时,也可以用缩写符号引用变量。
  例如程序中定义 x1,x2,x3,x4,x5,则可以用记号 x1-x5 来引用上述五个变量。
  4.SAS函数
  像多数高级语言一样,SAS提供了丰富的标准函数。
  SAS函数书写格式为:
  函数名(参数表)
  其中函数名为SAS关键字,参数表给出函数所要求的一个或多个参数。
  SAS函数的类型有:
  算术、截尾、三角、双曲线、概率、分位数、样本统计、日期时间、特殊函数
  5.函数的参数
  函数参数可以是变量名,数值或字符常量。
  6.函数值
  除了个别特殊情况,多数函数值的类型与其参数类型是一致的,数值函数值的默认长度为八个字节,字符函数值的默认长度是200个字符。
  函数的几点说明:
  (l)函数不能直接用在PUT语句中。
  (2)注意函数参数的取值范围,例如对数函数的参数值要大于零等。
  (3)除样本统计函数外,多数函数不许以缺值(Missins Value)为其参数。
  (4)对于某些概率函数,若参数选择不当,可能引起不收敛的问题,在这种情况下,函数值为缺值并给出错误信息。
  7.算术函数
  (l)取X的绝对值:ABS(X)。
  (2)取x1,x2,...,xn 中的最小值MIN(X1,X2,...,XN)
  (3)取x1,x2,...,xn 中的最大值MAX(X1,X2,...,XN)
  (4)取以x2为模x1的余:
  MOD (x1,x2)(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)和
  DIMI(m)的值是3,DIM2(m)的值是10,DIM3(m)的值是4。
  8.数学函数
  (1)双伽码函数:DIGAMMA(x)
  (2)误差函数:ERF(x)
  (3)误差函数ERF(X)的补函数:ERFC(X)
  (4)EXP(x)是自然对数
  (5)全伽码函数:GAMMA(X)
  (6)GAMMA(X)的自然对数值: LGAMMA(x)
  (7)X的自然对数:LOG(X)
  (8)X的常用对数:LOG10(X)
  (9)X的以2为底的对数: LOG2(X)
  9.截尾函数
  (1)大于等干x的最小整数: CEIL( X)。
  (2)小干等于x的最大整数: FLOOR()。
  (3)截去x的小数部分取整: INT(X)。
  (4)以y作为舍入单位,将x四舍五入:ROUND( x ,y),y的默认值为l。
  10.三角和双曲函数
  (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)。
  11.样本统计函数
  (1)校正平方和:CSS(X1,X2,...,XN)
  (2)变异系数: CV(X1,X2,...,XN)
  (3)平均值:MEAN(X1,X2,...,XN)
  (4)极差 RANGE(X1,X2,...,XN)
  (5)标准差:STD(X1,X2,...,XN)
  (6)标准误:STDERR(X1,X2,...,XN)
  (7)求和:SUM(X1,X2,...,XN)
  (8)计算方差:VAR(X1,X2,...,XN)
  12.概率函数
  (l)泊松分布的概率值:POISSON (,n)
  (2)β分布的概率值: PROBBETA(x,a,b )......
  13.操作符的执行优先顺序
  一个SAS表达式可能同时含有多种多个操作符。
  各种操作符的执行优先级顺序规定如下:
  规则1:括号内优先
  规则2:具有较高优先级的操作先执行,优先级次序如下:
  组1:**,正负号,NOT,><,<>
  组2:*,/
  组3:加法,减法
  组 4:字符连接(:或 ! )
  组5:<,<= ,>=,>
  组6:AND 逻辑乘
  组7:OR 逻辑加
  规则3:组号小者优先级高.具有相同优先级的操作依从左到右的原则.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


免责声明|关于我们|小黑屋|联系我们|赞助我们|统计211 ( 闽ICP备09019626号  

GMT+8, 2025-4-19 11:48 , Processed in 0.076673 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表