第二章 SAS语言基础(1)(3)

2019-01-10 12:43

_ERROR_在data步执行前被初始化为0,当data步执行过程中遇到错误时就会自动被置为1,而且会在LOG窗口中打印出来,这样有利于调试程序的时候定位错误出现的位置以及出现错误时采取相应的处理。

Tips:这里还是说一下SAS的变量命名规则: ·首字符要以字母或者下划线开始; ·名称中只能包含字母、数字和下划线;

·变量名可以是大写,可以是小写,也可以是混合写的,但是SAS会当作是同一个变量名,也就是大小写不敏感;

·不要与系统保留的字段同名,比方_N_;

·变量名长度,SAS9.0是32位,6.12版和8.2版是8位;

说明:其实这些规则同样适用于命名数组、逻辑库、数据集、宏变量、宏名、函数等等,不同的地方是长度限制可能不一样,具体可以查看帮助文件。

4.常量(constant):

常量与变量是一个相对的概念。变量是用来存储数值的,而且是可以重新赋值的,而常量是用来表示固定的值,是不可改变的。常量可以是是一个数字、字符串或者其他特殊记号。常量和变量还有运算符一起是构成表达式的元素。

常量的类型,SAS使用四种类型常数,另外,十六进制常量单独列出来讲。 4.1 字符常数(character)

字符常数是用引号(单引号/双引号)引起来的1-32767个字符组成的字符串,如,

'Tom', \等

如果是字符串中包含引号,该怎么办? 两种方法

方法一:如果包含单引号,怎么用双引号引起来,相反,则用单引号引起来,如,\表示Tom's

'Tom\表示Tom''s

方法二:对包含在字符串中的引号可以写成连续的两个引号,如, 'Tom''s' 表示Tom's \表示Tom''s 4.2 数值常数(numeric)

数值常数就是指在SAS语句中的数字,可以包含数字、小数点、符号和特殊记号E,如,

1, -5, +49, 1.23, 01, 1.2E23, 0.5E-10等等

注意:若一个数值常数大于10E32-1,则必须表示成科学计数法。 4.3 日期、时间和日期时间数值常数(data, time, and datetime)

为了将日期、时间或日期时间值表示成常数,使用在输入格式和输出格式中被使用的相同的记法,TIME., DATA.和DATATIME.。格式值用单/双引号引起来,并跟随一个表示格式的字母D(日期)、T(时间)或DT(日期时间)。如,

'1jan2006'd; '9:25't; '9:25:19pm't;

'18jan2002:9:27:05am'dt; 4.4 十六进制常量(hexadecimal)

十六进制字符常量:是用引号引起来的一串偶数个的十六进制字符,并跟随一个X,如,

'534153'x

而且可以在这一串十六进制字符中使用逗号分隔使得易读但不影响十六进制常数的值,只是这里的逗号必须按偶数个来分隔。如上面的常数可以写为,

'53,41,53'x

十六进制数值常量:通常,十六进制数值常数用一个数字开始(一般是0),紧跟着很多十六进制位,并用字母x结尾。这个常数可以包括最多16个有效的十六进制位,如,

0c1x, 9x

5.运算符(operators)

在SAS中,算符包括运算符、括号和函数。其中运算符可以分为两种,前缀运算符和中缀运算符,中缀运算符包括算术、比较、逻辑、特殊运算符。

5.1 前缀运算符(prefix operator)

前缀运算符可以用于变量、常数、函数以及括号括起来的表达式,包括正号(+)、负号(-)及非运算(NOT)。如,

+y -25

-cos(angle1) +(x*y)

5.2 中缀运算符(infix operator)

·算术运算符:+, -, *, /, **, 加减乘除在各种语言里面都是一样,只是乘方可能有些差别,SAS是使用**;

·比较运算符:= (EQ), ^=(NE), >(GT), <(LT), >=(GE), <=(LE), IN()前面这些运算符分别代表等于、不等于、大于、小于、不小于、不大于,等于列表中一个。其实平常用的话只要知道用符号就行,括号里面的字母是跟符号等价的,了解一下的好处是可以看懂别人的代码,不至于以为是变量名或者英文单词。

在SAS语法中,比较运算符是可以连用的,例如 if (90=

·逻辑运算符:&(AND), |(OR), ^(NOT), 分别代表与或非,括号里面单词跟符号等价。

·其他特殊运算符:<>, ><, || <>(max)取最大值,例如: a=8.2; b=9.0; min=(a<>b); 则min变量等于9.0。 ><(min)取最小值。

||(连接):用来连接字符串,例如: a=\b='SAS'; c='System!'; new=a||b||c;

则new变量等于'Hello, SAS System!'

5.3 运算次序,跟其他语言大同小异,更详细准确的说明请参看帮助文档。

6.表达式(expression)

表达式是由一系列算符和运算对象形成的一个指令集,它被执行后产生一个目标值。运算对象包括变量和常数;算符包括运算符、函数和括号。变量和常量是程序处理的两种基本数据对象,算符指定将要进行的操作,表达式则是用算符将变量或常量组合起来生成新的值。

7.语句(statement)

一个SAS语句是由SAS关键字、SAS名字、特殊字符和运算符组成的字符串,并以分号(semicolon)结尾,它要求SAS系统执行一种操作或给SAS系统提供信息。下面举例说明什么是关键字,名字,特殊字符和运算符等,真要解释概念可能到头来我也讲不清楚,你也听不明白。

put x $15.;

data temp;

proc means data=hospital.patiant ; infile rawdata;

do i=1 to dim(eachitem); key1:total+1;

*这是注释语句;

上面这些语句中,x, total是变量名字;temp和hospital.patiant是SAS数据集名字,其中hospital是逻辑库名;$15.是格式名字;means是过程名字;data=和maxdec=是means语句中的选项;rawdata是一个文件名;最后一个语句是注释语句。可以从这些例子中看出,语句都是以分号结尾的,注释语句也是如此。

语句分类:在SAS中语句分为两大类,data步语句和全程语句。 其中data步语句又分为五类:文件操作语句、运行语句、控制语句、信息语句、窗口语句。

·文件操作语句:用于操作文件,这些文件用于输入数据集;或者用于输出。 ·运行语句(动作语句):用于创建、修改或删除变量;或者用来操作记录;或者用来处理错误信息。

·控制语句:实现流程控制的语句。

·信息语句:给出关于数据集的附加信息,包括数据集中变量的信息。 ·窗口语句:用于显示输出或者接受输入。

8.数组(array)

数组是用来临时存放一系列变量的语法结构,常用于需要对一些变量做相同处理的情况。

注意:SAS的数组跟标准语言的数组是不一样,这一点首先要弄明白。在SAS中,数组不是数据结构,它存储的不是数据,而是变量,因此数组元素即是变量,也就是凡是可用表达式的地方,均可使用数组元素;数组只在当前data


第二章 SAS语言基础(1)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:校长许祥源在首都师范大学建校50周年庆祝大会上的讲话

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: