第二章 Sas语言基本概念.docx
- 文档编号:10229088
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:18
- 大小:88.47KB
第二章 Sas语言基本概念.docx
《第二章 Sas语言基本概念.docx》由会员分享,可在线阅读,更多相关《第二章 Sas语言基本概念.docx(18页珍藏版)》请在冰豆网上搜索。
第二章Sas语言基本概念
第二章SAS语言基本概念
§2.1SAS语言概述
SAS提供了一套完善的编程语言。
类似于多数计算机高级语言,使用SAS的用户只需要熟悉其命令、语句及简单的语法规则就可以做数据管理和分析处理工作。
因此,掌握SAS编程技术是学习SAS的关键环节。
在SAS中,把大部分常用的复杂数据计算的算法作为标准过程来调用,用户仅需要指出过程名及其必要的参数。
这一特点使得SAS的编程十分简单。
SAS程序是SAS语句的有序集合。
本书的以后章节中将逐一介绍SAS的主要语句。
如果以程序段的功能将SAS程序划分成多个模块的话,那么,这些模块分为两类:
数据准备模块------数据步(DATAStep)和数据分析处理模块------过程步(PROCStep)。
在一份SAS程序中可能有多个数据步和多个过程步,通常的情形为一个数据步和一个过程步。
图2.1SAS程序中数据流向示意图
数据步的作用是把数据源中的数据作为输入,经过整理加工后输出到一个或多个叫做“SAS数据集(SASDataSet)”的特殊文件中去。
数据源可能是DOS的ASCII码文件,也可能是直接写在SAS源程序中尾随CARDS语句之后用空格分隔的一批数据(数据行),还可能是已经存在的SAS数据集。
在过程步中,可以调用一个或多个标准过程。
过程步是把由数据步建立和产生的数据集中的数据作为输入,经标准过程计算处理后,将结果以清晰的表格或图形方式输出到输出窗口或写入磁盘文件。
粗略地说,数据步是为过程步准备数据的,并且将准备好的数据放在数据集中。
过程步是把指定数据集中的数据经计算处理后并输出结果。
图2.1给出在一个数据步和一个过程步组成的SAS程序中数据流向示意图。
§2.2SAS语句
SAS语句是以SAS关键词开头、后跟SAS名、特殊字符或操作符组成,并且以分号结尾。
一个SAS语句规定了一种操作或为系统提供某些信息。
下面是一些SAS语句的例子:
PUTx$15.;
DATAone;
FORMATvalue1abcd;
PROCMEANSDATA=store.supplyMAXDEC=3;
INFILErawdata;
DOi=1TODIM(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.1SAS关键字(SASKeywords)
关键字是系统已赋于确定意义的一个单词。
在SAS的程序中,除了赋值、求和、注释和空等语句外,多数语句是以其关键字作为开头的。
如上例中的PUT、DATA、FORMAT、PROC、INFILE和DO都是相应语句的关键字。
2.2.2SAS名(SASNames)
在SAS语句中,可能出现的SAS名有变量名、数据集名、输出格式名、过程名、选择项名、数组名和语句标号名。
还有SAS对文件的一种特殊称呼叫逻辑库名和文件逻辑名。
SAS名是以字母或下划线开头后跟字母或数字或下划线的字符串,字符个数不多于八个。
空格和特殊字符(如$,@,#等)不许在SAS名中出现。
另外,SAS保留了一些特殊的变量名并赋于特定的意义,这些变量都是以下划线开头和结尾,如_N_表示当前数据步已执行过的次数。
2.2.3本书的语句描述记号
(1)大写英文是关键字,在写程序时,这些词必须严格以给出的拼写形式书写。
(2)小写英文和汉字指定的项目由程序员提供。
(3)[]内的项是可选项。
(4)...表示有多个项目。
§2.3SAS数据集
“SAS数据集(SASDataSet)”是SAS的一种特定的数据文件。
它是由SAS程序的数据步或者交互方式产生的,SAS数据集是过程步的输入。
SAS数据集是一个数据值的集合。
形象的讲,SAS数据集是一个数据值构成的矩形表。
它的行叫观测(Observations),列叫变量(Variables)。
表2.1是SAS数据集的一个直观显示。
表2.1数据集
观测
变量1
变量2
变量3
变量4
...
1
数据值
数据值
数据值
数据值
...
2
数据值
数据值
数据值
数据值
...
3
数据值
数据值
数据值
数据值
...
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.3.1数据值(DataValues)
数据值是SAS处理的最基本的数据单元,在例1.1中不同处理不同盆下测得的每一个含氮量值是一个数据值。
数据值有两种类型:
数值型和字符型。
2.3.2观测(Observations)
数据集的一行是一个观测。
通常,一个观测的多个数据值描述了一个客观实体的多个特征。
2.3.3变量(Variables)
变量是用SAS名标识的具有相同性质的数据值的集合。
在SAS数据集中,每一列用一个变量名标识并且这一列数据值的全体构成该变量值的部分或全体。
SAS数据集的一列也称为一个变量。
数据集的列数就是该数据集所包含的变量个数。
换言之,数据集的一个观测里包含着数据集的所有变量的一个取值。
变量表示观察客观实体的一个属性。
2.3.4SAS数据集存储空间的计算
在SAS中,数据量的大小仅受设备容量的限制。
一个数据集所占用的存储空间可以用如下公式计算:
(218+(V*106))+(Obs*(TVL+4))字节
其中:
V是变量个数;Obs是观测个数;TVL是所有变量的长度之和,以字节为单位。
例如一数据集有10个观测,2个变量,每个变量的长度是8个字节,则这个数据集总的存储空间为(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.2SAS变量属性
变量属性
可能值
默认值
定义语句
类型
数值或字符
数值
LENGTH/ATTRIB
长
度
数值
3-8字节
8字节
LENGTH/ATTRIB
字符
1-200字符
8字符
输入格式
数值
见有关INFORMAT/FORMAT语句的章节
w.
INFORMAT/ATTRIB
字符
$w.
输出格式
数值
w.
FORMAT/ATTRIB
字符
$w.
标号
0-40个字符
空格
LABEL/ATTRIB
2.4.1变量类型(Types)
数值型变量(NUMERIC)的值是数值。
数值的范围是±10-307至±10+308。
字符型变量(CHARACTER)是以字符串为其值的。
一个字符型变量的值最多可达200个字符。
2.4.2变量的长度(Length)
SAS变量长度是指在SAS数据集中存储其每一个值的字节数,默认值是8个字节。
如果不使用默认值,可以用专用语句定义之。
2.4.3变量的格式标号(Labels)
用LABEL语句可以为变量定义一个标号。
这个标号是引号内的任意字符串。
字符个数不超过40,字符串还可以是汉字。
变量标号的默认值是空格。
标号与变量名一起输出,这样可以提高输出结果的可读性。
2.4.4数据缺值(MissingValues)
在实际问题中,经常碰到数据不全或数据缺少的问题。
例如,某一试验中,有个别数据无法或不可能取得。
这些不能得到的数据叫做数据缺值(MissingValues)。
SAS进行数据分析处理时,允许数据缺值。
下面介绍SAS对缺值数据的输入输出的表示。
(1)用INPUT语句自由格式读入数据时,数据源中用一个句点表示一个缺值数据。
用INPUT语句列格式读入数据时,在数据源中用空格表示缺值数据。
(2)在SAS数据集中用句点表示一个缺值数据。
(3)在SAS的各种输出中用一个句点表示一个缺值数据。
§2.5SAS程序的书写格式
SAS程序像多数高级语言一样具有灵活的书写格式。
2.5.1空格
SAS语句可以在一行的任何一列开始书写;一行上可以写几个语句;一个语句可以分成多行。
一般情况下,一个语句中不同的语法单位要用空格分隔,但是对于某些特殊字符,可以不用空格分隔。
例如下面的两个语句都是合法的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则表示a,y,b和k这四个变量。
(2)在程序中引用的一组变量名字的前部分字符相同而后部分符号是连续的自然数时,也可以用缩写符号引用变量。
例如程序中定义了
,则可以用记号
来引用上述五个变量。
对于这种情形,当变量第一次出现(包括定义)时也可以使用缩写记号。
也就是说,在程序中若第一次出现
,那么,就意味着程序中定义了n个变量
。
§2.6SAS函数
像多数高级语言一样,SAS提供了丰富的标准函数。
SAS函数书写格式为:
函数名(参数表)
其中函数名为SAS关键字,参数表给出函数所要求的一个或多个参数。
SAS函数的类型有:
算术、截尾、三角、双曲线、概率、分位数、样本统计、随机数、字符、日期时间和一些特殊函数。
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(OFxyz)
而下列书写是错误的:
函数1(
)
函数2(xyz)
函数3(xyz)
函数1(
)
2.6.2函数值
除了个别特殊情况,多数函数值的类型与其参数类型是一致的。
数值函数值的默认长度为8个字节,字符函数值的默认长度是200个字符。
2.6.3函数的几点说明
1.函数不能直接用在PUT语句中。
2.注意函数参数的取值范围,例如对数函数的参数值要大于零等。
3.除样本统计函数外,多数函数不许以缺值(MissingValue)为其参数。
4.对于某些概率函数,若参数选择不当,可能引起不收敛的问题,在这种情况下,函数值为缺值并给出错误信息。
2.6.4算术函数
1.取x的绝对值:
ABS(x)。
2.取
中的最大值:
MAX(
)。
3.取
中的最小值:
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为正整数。
设已定义了多维数组ARRAYm(3,10,4)m1-m120,则DIM(m)和DIM1(m)的值是3,DIM2(m)的值是10,DIM3(m)的值是4。
2.6.5数学函数
1.双伽码函数:
DIGAMMA(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的最大整数:
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.计算
的校正平方和:
CSS(
),其值为
,其中
为
的平均值。
2.计算
的变异系数:
CV(
),其值为
,S为标准差,
为均值。
3.计算
的平均值:
MEAN(
)。
4.计算
的极差:
RANGE(
)。
5.计算
的标准差:
STD(
)。
6.计算均值的标准误:
STDERR(
)。
7.求和:
SUM(
)。
8.计算方差:
VAR(
)。
2.6.9概率函数
1.泊松分布的概率值:
POISSON(λ,n),计算服从泊松分布的观测值小于n的概率,λ是平均参数值,其中0≤λ,0≤n。
2.β分布的概率值:
PROBBETA(x,a,b),a和b是β分布的形状参数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二章 Sas语言基本概念 第二 Sas 语言 基本概念