SAS教程【Base SAS软件】:[2]SAS编程基础

2025-06-01 00:57:41

SAS语言的编程规则跤耧锿葡与其它过程语言基本相同。

SAS语句

一个SAS语句是有SAS关键词、SAS名字、特殊字符和运算符组成的字符串,并以分

号(;)结尾。

注释语句的形式为:/*注释内容*/或*注释内容。

SAS程序

一序列SAS语句组成一个SAS程序。SAS程序中的语句可分为两类步骤:DATA步和PROC步。这两类步骤是所有SAS程序的模块。通常用DATA步产生SAS数据集,而用PROC步对SAS数据集内的数据进行分析处理并输出结果。

SAS数据集

SAS数据集相当于其它数据库系统的表(Table);每一行称为一个观测,相当于其它数

据库系统的一条记录;每一列称为一个变量。

SAS的变量只有两种类型:数值型和字符型;变量的长度缺省时为8个字节,用关键字LENGTH定义变量长度;可以对变量的输入、输出格式进行定义,用关键字INFORMAT、FORMAT来分别定义;还可以给变量加标签,标签是一个代替变量名的描述性标识,可以在一些确定的SAS过程中代替变量名被打印出来,用关键字LABEL定义。

SAS表达式和SAS函数

SAS语言的表达式与其它过程语言略有不同。

SAS语言中数值型变量的缺失值是一个小数点(.),字符型变量的缺失值是空(′′)。

在一个四则运算的表达式里面,如果有一个缺失值,那么整个运算的结果就是’.’;如果用户不想让缺失值参加算术运算,可使用SAS的样本统计函数,如SUM(),MEAN()等。如果除法运算的除数为0,那么运算的结果也是’.’。

表示时间的变量在数据集里经常被定义为数值型,0代表的是1960年1月1日,1代表

的是1960年1月2日,-1代表的是1959年12月31日,以此类推。我们可以用FORMAT定义时间的输出格式,如:yymmdd10.这种格式显示的时间形式如’2001-05-01’。时间常数可以表示成'01MAY2001'd的形式,如:ifoccdate=’01MAY2001’d。

算符’| |’连接两个字符值,连接算付不清里开头和结尾的空格,如:如果itemid=’622’,itemname=’逾期贷款’,那么itemid | |‘.’| | itemname=’ 622.逾期贷款’。如果要去掉空格,就要使用SAS函数TRIM和LEFT,trim(left(itemid))| | ‘.’| | trim(left(itemname))=’622.逾期贷款’。

常用的函数:

字符函数:

TRIM(s):去掉s尾部空格;

LEFT(s):字符串s的表示式采用左对齐,即去掉s开头的空格;

SUBSTR(s,p,n):从字符串s中的第p个字符开始抽取n个字符的子串。

LENGTH(s):给出字符串s的长度;

INDEX(s,s1):搜寻字符串s1在字符串s中的位置;

INPUT(s,informat):

字符s的输入格式为informat,如:INPUT(‘1960-01-01’,yymmdd10.)=0;

PUT(s,format):

将s按format的格式输出,如:PUT(0,yymmdd10.)=’1960-01-01’,结果一定为字符型;

SYMPUT(‘x1’,x2):把x2的值赋给宏变量x1

SYMGET(‘x’):取得宏变量x的值;

时间和日期函数:

DATE( ):取当前日期;

DATETIME( ):取当前日期和时间;

YEAR(date)、MONTH(date)、QTR(date)、DAY(date):

分别取date表示的年、季度、月份、日。

INTX(in,from,nu):

按给定的时间间隔in—年(year)、季度(qtr)、月份(month)、日(day),从日期from,推算出nu个时间间隔后的日期的第一天。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢