第二章[SAS编程基础]

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章 SAS 编程基础

第一节常量、变量与观测值

2.1.1 观测值

描述单一整体,如个别人、一个实验动物、一年、一个地区某些特性的一系列数据值称为观测值,又称观察。

2.1.2 变量

给定特性的数据值的集合组成了变量。在SAS数据集中,每一个观测值是由各个变量的数据值组成。在数据集中每一列数据是一个变量。

1.命名

SAS变量名和其他名称如数据集名等的命名规则都相同,它可以多至8个字符长,第一个字符必须是字母(A,B,C,….,Z),或者是下划线(_),后面的字符可以是数字或下划线。空格不能出现在SAS名中,特殊字符(如$,@,#)也不允许在SAS名中使用。SAS 系统保留了一定的名称作为特殊的变量名,这些名称以下划线开始和结尾。如_N_和_ERROR_等。

2.变量特性

SAS变量有两种类型,数值型和字符型。字符型变量在名后用一“$”号来表示。除了他们的类型外,S A S变量还有下列特性:长度、输入格式、输出格式和标记。

变量的长度特性,是指在SAS数据集中用以存储它的每一个值的字节数。缺省长度是8(为了存储长度与缺省值不同的变量,需使用LENGTH语句)。

变量的特性,或者明确地说明,或者在它们首次出现时的上下文中给出定义。例如:

DATA A;

C='BAD';

PUT C;

C='GOOD';

PUT C;

RUN;

C在第一次出现时已被定义成字符型变量,长度为3,因此第二次再向c中赋值GOOD时,由于c已被定义成长度为3,故c中只存有‘GOO’。

PUT语句的作用是把变量的值输出到LOG窗口。

变量的其他特性将在后面逐渐介绍。

3.变量清单的简化表示

在SAS程序中定义了完整的变量清单后,就可以在后面许多语

句中使用缩写变量清单形式。

名称形式缩写意义

形如:X1,X2,…Xn的带

有序号的名称

X1-Xn 从X1到Xn的所有变量

形如 X P A * 的名称范围X-A 从X到A的所有变量

X-NUMERIC-A 从X到A的所有数值变量X-CHARACTER-A 从X到A的所有字符变量

特殊SAS名称_NUMERIC _ 所有数值变量_CHARACTER _ 所有字符变量_ALL _ 所有变量

例如:

INPUT NAME $ VARl VAR2 VAR3 VAR4 VAR5 VAR6;

也可以写成:

INPUT NAME $ VARl一VAR6;

注意字符型变量NAME不包含在这个缩写清单中,有序号的变量不必全部列出,这些变量要求类型相同,或全是数值型的或全是字符型的。

4.缺项值

当一个变量由于某种原因没有得到(可能没有观测到,或由于数据错误;或由于计算错误),称该值为缺项值(又称缺失值). 在SAS中用“.”表示。

2.1.3 常量

SAS常量是一个数,或一个括在引号中的字符串,或者是一个指示固定值的特殊的标记。

S A S常用3种常量:数值,字符,日期,时间或日期时间值。

常量可被用于赋值、求和、IF、SELECT、RETAIN,PUT和ERROR 语句中,或作为特定过程的可选项的值。

1.数值常量

数值常量可为正负整数和小数,对于过大和过小的数则用科学记数法表示。

如:1.785E-9即1.785*10-9,对于数值型量的缺项值用“.”来表示。

2.字符常量

一个字符常量可由1至200个字符组成。例如:姓名Zhangli,性别Male等。字符型缺项值用空格来表示。

3.日期、时间和日期时间常量

用单引号括起日期时间值,后面接着用一个D(DATE)、T(TIME)或DT(DATETIME)来表示其类型。下面是几个例子:

.'1JANl980'D

.'9:25'T

.'9:25:19'T

.'18JAN80:9:27:05'DT

为了将日期、时间或日期时间值赋给变量,应指出变量的输入格式或输出格式:TIME.、DATE.、和DATETIME.。

第二节 SAS函数

SAS函数是一个程序,它对一个或多个参数进行计算后返回一个值。每一个SAS函数有一个关键字名,为了调用一个函数,写出函数名接着是括在括号中的一个或多个要进行计算的参数:函数名(参数,参数)

当参数多于一个时,参数之间应该用逗号分隔,也可写成如下两种形式之一:

函数(OF 变量1-变量n)

函数(OF 变量1 变量2 变量3)

例如下列形式是正确的:

SUM(OF X1一X100 Yl—Y100)

SUM(OF X Y Z)

SUM(X1,X2,X3,X4)

2.2.1 算术函数

ABS(x) 返回x的绝对值

DIM(array) 返回数组中元素个数

MAX(X,Y,…) 返回X,Y….中的最大值

MIN(X,Y….) 返回X,Y….中的最小值

MOD(X,Y) 计算x/y的余项

SIGN(x) 返回参数x的符号或O

SQRT(x) 计算x的平方根

还有LBOUND和HBOUND等函数。

2.2.2 数学函数

EXP(x) e的幂

LOG(x) 产生自然对数

LOG2(x) 计算底为2的对数

LOG10(x) 计算底为10的常用对数

D I G A M M A(x)计算G A M M A函数对数的导数

还有E R F、E R F C、G A M M A、L G A M M A等函数。

2.2.3 三角函数和双曲函数

COS(x) 计算余弦

SIN(x) 计算正弦

TAN(x) 计算正切

还有ARCOS、.ARSIN、ARTAN、COSH、SINH、TANH等函数。2.2.4 概率函数

PROBBNML(p,n,f) 二项式(BINOMIAL)概率分布函数;

PROBCHI(x,df) 卡方概率分布函数

PROBF(x,ndf,ddf) F分布函数

PROBNORM(x) 标准常规概率分布函数

PROBT(p) STUDENT'S T分布函数

还有POISSON,PROBBETA、PROBGAM、PROHYPR、PROBNEGB等函数。

2.2.5 分位数函数

CINV(p,df,nc) 卡方分布分位数

FINV(p,ndf,ddf,nc) F分布分位数

TINV(p,df,nc) T分布分位数

还有BETAINV、GAMINV、PROBIT等函数。

2.2.6 样本统计函数

MEAN(x,y...) 计算算术均值

STD(x,y,...) 计算标准差

SUM(x,y,...) 计算参数和

VAR(x,y,….) 计算方差

还有CSS、CV、KURTOSIS,MAX,MIN,N,NMISS,RANGE、SKEWNESS、STDERR,USS等函数。

2.2.7 随机函数

RANNOR(x) 产生一正态偏差

RANUNI(x) 产生一均匀偏差

还有NORMAL,RABIN,RANCAU、UNIFORM、RANEXP,RANGAM、RANPOI、RANTBL、RANTRI等函数。

2.2.8 字符函数

INDEX(a,b) 求字符串b在字符串a中的位置

相关文档
最新文档