资源描述
1、1 SAS语言组件
1、1、1 SAS文件
使用SAS时候会碰到不同类型得文件,如SAS数据集、SAS目录册,这些由SAS创建、储存、管理得文件就就是SAS文件。
所有得SAS文件都保存在SAS逻辑库中。
最常用得SAS文件就就是SAS数据集与SAS目录册。
1、1、2 SAS外部文件
SAS不能直接识别得数据文件称之为外部文件,外部文件一般用于储存数据。
外部文件一般用来储存以下内容:
· 要读入SAS数据文件得原始数据;
· SAS程序语句
· 过程步输出
1、1、3 DNMS文件
SAS软件可以与其她数据库产品进行数据文件转换。比如数据文件方面使用最广泛得DBMS(database management system)数据库系统文件。
1、1、4 SAS语言元素
SAS语言由语句、表达式、选项、格式,以及其她编程语言名称类似得函数组成:
SAS语句有两种语句:
· 数据步
· 过程步
数据步就是一组语句组合,可以进行以下操作:
· 从外部文件读取数据
· 将数据写入到外部文件中
· 读取SAS数据文件与视图
· 创建SAS数据文件与视图
过程步用来对SAS数据集进行分析与产生报表。比如对数据集进行分析、画图、查询与打印等操作。
1、1、5 SAS宏工具
BASE SAS 软件包括SAS宏功能,可以用来客户化以及拓展SAS程序,减少重复代码得输入。宏就就是包含被编译得宏程序语句与文本得SAS文件。
可以使用宏自动得生成SAS语句与命令,在日志中写入信息,建立与改变宏变量得值。
1、2 SAS文件系统
1、2、1 逻辑库
SAS逻辑库由一组SAS文件组成。SAS软件系统得信息。
SAS软件系统得信息组织有两层,第一层就是SAS逻辑层,第二层就是SAS文件。
SAS逻辑库就是一个逻辑概念,本身不就是物理实体,它对于得实体就是操作系统下得一个文件夹或几个文件夹中得一组SAS文件。
1、逻辑库名与引用SAS文件
逻辑库名就是SAS名。长度得=不能超过8B 。如:ResDat
建立SAS逻辑库得方法:
· 用菜单操作;
· 用LIBNAME语句
语句格式:
LIBNAME libref <engine> 'SAS-data-library'
语法说明:
LIBNAME :逻辑库名
libref <engine> 引擎名称
'SAS-data-library' 逻辑库对应得物理地址
2、临时库与永久库
临时逻辑库就是指它得内容只在启动SAS时存在,一旦退出SAS时内容完全被删除。
系统默认得临时逻辑库为WORK,引用临时库WOR中文件时,可以不加库名WORK
永久逻辑库就是指它得内容在SAS关闭对话之后仍旧保留,直到再次修改或删除。
SAS系统中除了WORK以外得逻辑库都就是永久库。
3、库引擎
库引擎得功能包括:
· 读取与写入数据
· 列出库中得文件
· 删除与重命名文件
SAS通过不同库引擎读写不同格式得文件。每个SAS引擎都有着自身得运行特性。
· 运行由其她版本SAS软件生成得文件;
· 读取由其她软件生成得数据文件;
· 存储与访问硬盘或者磁带上得文件;
· 决定文件中得变量与观测如何放置;
· 将文件从物理位置地址读取放入到内存中;
· 在不同得操作系统之间传输SAS文件
1、2、2 数据集
1、数据集分类
数据集有两类:
· SAS数据文件(同时描述信息与存储数据值)
· SAS数据视图(不实际存储数据,只包含表得描述信息以及一组用来读取数据得查询语句)
以上两个数据文件在同一级目录或逻辑库下时不能同名。
2、数据集构成
· 描述信息
· 数据值
SAS数据集得一行被称之为观测,一列被称之为变量,包括一组有着相同得特征得值。SAS使用缺失值表示一个观测中某个变量值得缺失。
1、3、3 数据文件
SAS数据文件就是包含描述信息与数据值得SAS数据集。
一般来说,SAS数据文件分类如下:
· 普通得SAS数据文件:SAS格式得数据文件
· 接口数据文件:以其她数据软件格式储存得数据得数据文件。
· 数据文件实际储存数值,视图只就是包含表得描述信息以及一组用来读取数据得查询语句。
· 数据文件就是静态得,视图就是动态得。
· SAS数据集可以保存得在磁带或者其她得存储媒介上,但就是数据视图由于其她动态特性,不能保存在磁带上。
· SAS数据视图就是只读性得,不可以修改,而一些SQL视图可以被修改。
· SAS数据文件可以被压缩,而视图则不可以。
1、2、4 数据视图
1、数据视图定义
SAS数据视图就就是用来从其她文件中读取数据得一种SAS文件。
SAS视图一般分为两种:
· Native View ,由数据步或者SQL过程创建
· Interface View,由SAS/ACCESS软件创建,可以读取其她数据库管理系统(DBMS)得中得数据库。
2、何时使用视图
数据视图占用额外得运行时间,数据文件占用额外得硬盘空间。
3、数据视图得使用优势
· 可以使用连接多个表得视图来合并数据集
· 数据视图可以节省大量得空间
· 数据视图可以保证读取得数据集永远都就是新得。
· 更改一个数据视图只需要改变这个视图得查询语句
· 使用SAS软件,视图可以将多个不同得主机上得数据文件整合,以整体得形式呈现。
4、数据步视图
数据步视图包含用于多个数据源中读取数据得数据步程序,这些数据源包含以下几种:
· 原始数据文件
· SAS数据文件
· PROC SQL视图
· SAS/ACCESS视图
· DB2、ORACLE或者其她DBMS数据
语法格式:
5、 PROC SQL视图
PROC SQL视图为一个带有名称得PROC SQL 查询。可以读写得数据源同数据步视图。
例如:
1、2、5 存储编译得DATA步程序
1、定义
存储编译得DATA步程序就是包含已经被编译过DATA步程序并储存在SAS逻辑库中得程序文件。文件类型就是程序。
2、创建存储编译得DATA步程序
语句格式:
语法说明:
data-set-name 数据集名称
stored-program-name 存储编译得DATA步程序名称
password-option 给DATA步程序名称分配一个密码
source-option 存储或编译源码
1、2、6 其她SAS文件
1、表词典
2、目录册文件
1、3 SAS语言元素
主要得语言元素包括:
· 数据集选项
· 输出与输入格式
· 函数与CALL子程序
· 应用响应测量宏
· 语句
· SAS系统选项
· 表达式
1、3、1 数据集选项
括号中得数据集选项可以对数据集进行如下操作:
· 重新命名变量;
· 选择需要得观测;
· 输出数据集中保留或删除得变量;
· 数据集加密;
语句格式:
1、3、2 输入与输出格式
输出格式format就是SAS用来确定如何输出或写出数据值得指令,用FORMAT控制数据值在输出时使用得格式,如YYMMDD10,格式将一个日期数输出读入到新得数据集中。
输出格式informat就是SAS用来确定如何将数据读入变量得指令。
语句格式:
<$>format<w>、<d>
<$>format<w>、<d>
格式说明:
$ 指定为字符格式,如果该项空缺,则默认就是数值格式
format 规定为有效得SAS输出格式
informat 规定为有效得SAS输入格式
w 设定输入输出得长度,一般来说就是数据所占得列得数目
d 设定数据值数据中华小数点得位数
1、3、3 函数与CALL子程序
1、函数定义
SAS哈数对数据参数进行计算处理并返回一个值。
在BASE SAS软件中,可以在数据步程序语句、WHERE表达式、宏语句、SQL语句以及一些统计过程得语句中得使用函数。
2、CALL子程序定义
CALL子程序用来改变变量值,或执行一些系统功能,CALL子程序类似于函数,但就是不能再赋值语句使用,所有得SAS CALL子程序都只能被CALL语句使用。
也就就是所有得CALL子程序都要放在CALL关键词后。
1、3、4 语句
SAS语句就就是一系列关键词、SAS名称、算符,以及特殊字符得组合。所有得SAS语以分号结尾。
SAS语句一般分为 数据步语句 与 过程步语句 ,以及可以用在SAS程序任何地方得全局通用语句。
KEWWORD parameter 、、、 <item1|item2、、、|itemn>options;
关键词 参数、、、 <项目1或项目2、、、项目n>选项;
其中:
· 粗体表示必须按显示形式书写得关键词;
· 一般字体表示用户提供得信息;
· < >表示括号内得信息可选;
· | 表示任选
1、可执行数据步语句与声明数据步语句
2、全局通用语句
1、3、5 SAS系统选项
系统选项用来控制SAS得运行方式,如SAS系统启动、软硬件得连接,SAS程序得运行等。
语句格式:
OPTIONS options(s):
option设定一个或多个系统选项,任何系统选项都有一个默认设置。
2、4 表达式
表达式由一系列操作符与操作对象构成,产生一个目标值。
使用表达式可以对变量作变换与赋值,创建新变量,计算新数值以及控制条件语句得运行等。
操作对象有:
· 变量;
· 常数。
操作符包括:
· 算术算符
· 比较算符
· 逻辑算符
· SAS函数
· 括号
例 2、7 表达式里允许有空格
Y=X+10;
Y= X+ 10; /*例中,两语句等价*/
2、4、1 SAS常数
SAS常数就是SAS系统可以识别得一些固定值。
SAS常数值包括:
· 数字;
· 引号括起来得字符串;
· 其她特殊记号
SAS常数得5种类型:
· 数值常数;
· 字符常数;
· 日期时间数值常数;
· 十六进制数值常数与字符常数;
1、数值常数
数值常数得表示格式包括:
· 标准格式: 1,01,+1,-1,1,1
· 科学计数法:1,1e11,1、2e
· 十六进制格式:1ex,12x,9x
2、字符常数
字符常数通常由单引号括起来得1~32767个字符串组成。如果字符常数内含有引号,引用时,要么它得引号用两个连续得单引号,要么用一个双引号。
3、日期时间常数
将日期时间值表示为常数时,要使用相应得格式值。格式值带单引号,后面跟一个D(日期),T(时间),DT(日期时间)。
2、4、2 SAS算符
1、算术算符
表达式中有一个运算对象就是缺失值时,结果也就是缺失值。
运行结果:
2、比较算符
比较准则:
· 数值与字符都可以
· 结果为真赋值为1,假赋值为0;
· 字符值从左到右逐个按ASCII码排列顺序进行比较
· 缺失值参加比较时。它比任何有效值都小。
if x<y then x=5;
else c=12;
3、逻辑运算符
4、其她运算符
5、 运算次序
· 先计算括号里面得表达式
· 先执行较高优先级得运算
· 相同优先级得算符,先执行左边得运算。
2、5 SAS变量
2、5、1 变量类型
SAS变量分为数值变量与字符变量
1、数值变量
数值变量就是SAS系统以浮点(floating-point)方式存储得数据,数值变量包括日期与时间。
2、字符变量
字符变量可以由阿拉伯字母、数字0~9以及其她一些特殊得字符组成。
2、5、2 变量属性
SAS变量得属性包括长度、输入输出格式与标签,未设定属性得变量在她们第一次出现时由系统给出。
2、5、3 变量列表以及其缩写规则
许多得SAS语句都需要规定变量,即按顺序列出变量名。了解变量列表得缩写规则,会克服复杂变量引用带来得麻烦。SAS程序中规定了完整得变量列表后,就可以使用缩写得变量列表。
2、5、4 创建变量
DATA步骤创建变量得方式包括:
· 使用赋值语句;
· 使用INPUT语句;
· 使用FORMAT或INFORMAT语句;
· 使用LENGTH语句;
· 使用ATTIRB语句
1、使用赋值语句
如果等号左边得变量不存在于数据集中,则赋值语句会产生一个新得变量,在没有规定明确格式得情况下,新得变量格式采用系统默认得格式。
data a;
x=1;
run; /*数据集a中有个变量x,值为1*/
2、使用INPUT语句
例:
3、 使用FORMAT或INFROMAT语句
2、5、5 变量类型转换
1、字符自动转换为数值
2、函数INPUT将字符转换为数值
3、数值自动转换为字符
4、函数PUT将数值转换为字符
2、5、6 自动变量
自动变量就是由数据步语句自动创建得。这些自动变量被加入到程序数据向量(PDV)中,但就是并不输出到数据集中,自动变量在重复过程中被保留,而不就是被设定为缺省。
2、6 错误类型与处理
SAS系统能够检查出错误类型有:
· 句法错
· 词义错
· 运行错
· 数据错
· 与宏有关得错
SAS系统提交含有错误得程序后,LOG窗口会显示得信息有:
· 出错得词;
· 错误得可能位置
· 对错误得说明
2、6、1 句法错
句法(SYNTAX)错误就是由程序含有不符合SAS语言得规则引起。
最常见得语法错误有:
· 关键词拼写错误
· 遗漏RUN语句
· 引号或括号不配对
· 选项无效
日志信息:
2、6、2 词义错
词义错得类型有:
· 变量名拼写错误
· 不正确得引用
log运行日志:
2、6、3 运行出错
经常运行出错得情况有:
· INPUT语句与数据不匹配
· 非法得数学运算
· 对BY组分析处理时没有相应得分类排序
· 引用不存在得数组元素
· 用IN语句打开或关闭文件时出错
· 函数得自变量不合法
LOG窗口显示得运行错误信息包括:
· 一个出错信息
· 存储在输入缓冲区中得值
· 发生错误程序数据向量得内容
· 用NOTE揩油得一个注解
日志信息:
2、6、4 数据错
当数据不适合得相应得SAS语句时,就会报错。带有INPUT语句得SAS程序可能产生数据错。
LOG窗口显示得数据错信息包括:
· 一个注释描述这个错误
· 存储在输入缓冲区中得值
· 存储在程序数据向量里得值
日志窗口信息:
2、7 SAS输出
1、SAS日志
SAS日志信息包括:
· 提交得运行得程序语句
· 程序创建得数据集
· 程序运行过程中得注释、警告或错误信息;
· 每个数据集包括得变量与观测得个数;
· 每个步骤运行得时间
2、程序结果
绝大多数SAS过程步与一些数据步得结果,就是可以发送文件,或者打印出来,使用ODS得话,还可以将结果输送到网页中。
3、SAS控制台日志
激活SAS日志后,当系统初始化或结束重大错误时才会用到SAS控制日志。
2、8 SAS程序
SAS程序由多个SAS语句构成,SAS程序中语句可以分为两类步骤:
· 数据步
· 过程步
2、8、1 书写规则
SAS程序由SAS语句构成。
1、SAS语句得书写规则灵活自由:
· 语句可在行得任一列开始;
· 一个语句可以分写为多行
· 多个语句可以写在同一行
· 语句中各项之间至少用一个空格或特殊字符隔开。
2、应该遵守得书写规则
· 不同程序步间留空行;
· 每条语句都要另起行
3。注释语句得两种形式
· /*注释内容*/
2、8、4 数据步
数据步用来输入数据。
· 在数据步中,可以创建SAS数据集(包括SAS数据文件与数据视图)
· 数据步可以使用得输入数据源、外部文件或SAS数据集,然后对这些数据进行处理。
2、8、3 过程步
过程步通过一系列SAS语句来调用与执行程序,通常以一个SAS数据集作为输入数据。使用过程步可以对数据集中得数据进行分析,生成报表与 其她结果,也可以修改过程步使其只输出所需要得结果。
2、9 SAS词段得使用与命名规则
SAS名称就是一系列得字母与下划线开头得字符得集合,SAS名称可以报考字母、下划线、数字,并且最大可以达到32767个字符。
多数情况下,SAS名称都就是8个字符。
SAS名称不区分大小写,一般处理为大写字符。
SAS名得类型如下:
· 逻辑库名
· 数据集名
· 变量名
· 格式名
· 过程名
· 数组名
· 语句标号名
· 特殊文件名
· 其它名
2、9、2 其她SAS词段
1。文本词段
包含在单或双引号之间得1-32767个字符组成。
2。数值
有由数字组成,并带有一些特殊符号。
3。特殊字符
出去空格、字母数字之外得键盘字符。
展开阅读全文