第4章 用编程读入数据建立SAS数据集
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章用编程读入数据建立sas数据集
§4.1 sas编程基本概念
§4.1 概述
sas语言程序由数据步和过程步组成。
sas语言的基本单位是语句,每个sas语句一般由一个关键字(如data,proc,input,cards,by)开头,包含sas名字、特殊字符、运算符等,以分号结束。
sas关键字是用于sas语句开头的特殊单词,sas语句除了赋值、累加、注释、空语句以外都以关键字开头。
sas名字在sas程序中标识各种sas成分,如变量、数据集、数据库,等等。
数据步和过程步
数据步用来生成数据集(从数据片中或外部数据文件中读取数据)、计算整理数据等。
语法:
data 数据集名;
.....;
run;
过程步:面向SAS数据集,完成某个特定的计算、分析和呈现功能
语法:
proc 过程名;
......;
run;
sas程序的书写规则
sas程序是由一至多个数据步骤(data step)和过程步(Procedure Step)互相交叉组合而形成。
根据各个数据步骤的属性或过程步的功能,来实现sas 数据文件的建立、进行统计分析等。
sas系统的编译方式是以数据步或过程步为一个区块来编译的,语法编译无误便开始执行该数据步或过程步,执行完整一个数据步或过程步区块后便继续处理下一个数据步或过程步。一个区块接一个区块地将所有程序代码编译及执行完后,便完成了该程序的执行。sas程序代码提交出去,便已将程序交由sas系统去完成。
用户必须确定sas系统在log窗口中是否有显示错误的程序代码,分析数据的属性是否正确。
sas的程序代码是自由格式的程序代码,每个语句由关键词开始,以“;”作为一个程序语法的结束;
一行可以含多个程序语句;
一个程序语句也可以分成多行,但必须以空格(只要有一个空格的地方,就可用任意多个空格来替代)为分隔。注:在命令框中键入num即可显示或取消行数。
指定逻辑库名与逻辑文件名
指定逻辑库名
在sas系统中只有sas数据集才能被sas过程直接调用,sas数据集的结构和dbf数据库完全相同。sas数据集存储在被称为sas数据库的文件集中,在pc系统中,sas数据库与某一个文件夹相对应,为了避免直接书写较长的实际地址,最好为每一个数据库指定一个库标记(库名)来识别该库,使用Libname命令可以指定库标记。
语法:
libname 逻辑库名'库的物理存储位置';
上述指定的目录,必须在程序执行前就建好,否则无法使用。libname 库名 list;在log窗口显示该逻辑库的连接情况(即列出库名对应的物理置).
libname 库名 clear;取消该逻辑库的设置.
libname _all_ list;显示所有逻辑库的设置. libname _all_ clear;取消所有逻辑库(不包括系统提供的)的设置.
libname逻辑库名(物理位置1 物理位置2…);
为多个物理位置指定同一个逻辑库名.
若多个位置对应一个逻辑库名,则逻辑库的属性中的levels取值为物理位置的个数,在存储文件时,文件存在levels=1的物理位置,调用文件时,系统会自动搜索所有物理位置。
指定逻辑文件名
定义逻辑的文件名称,以供SAS系统程序中使用。
语法:
filename 逻辑文件名'文件的物理存储位置' ;
引用:
逻辑文件名
逻辑文件名(‘文件名’)
注:如指定的文件位置并不存在,系统并不报错,但引用逻辑文件名时,错误的逻辑文件位置会报错。此同逻辑库不同。逻辑文件名可同已有的逻辑库同名,因在不同地方引用,不混淆。
例:
########################################### libname dst 'd:\dst';
libname dst list;
libname dst;
libname dst clear;
libname_all_list;
libname_all_;
libname_all_clear;
filename dst 'd:\data';
filename dst list;
filename dst;
filename dst clear;
filename_all_list;
filename_all_;
filename_all_clear;
########################################### 注:
1 libname dst 'd:\dst';中的文件夹dst要先在window系统中建好,否则无法建立此逻辑库,运行此命令会提示错误;
2 filename dst 'd:\data'; 中的文件夹data也要先在window系统中建好,运行此命令会无错误提示;但引用此逻辑文件名时会提示错误。
§4.1.3查看逻辑库和数据集的属性和内容
查看sas逻辑库的属性和内容
语法:
proc datasets lib=逻辑库名;
run;
查看sas数据集的属性和内容
语法:
proc contents data=数据集名;
run;
输出sas数据集的数据部分
语法:
proc print data=数据集名;
run;
§4.2 用数据步读入(文本文件)数据生成SAS数据集
§4.2.1 数据文件格式与数据步的一般形式
源数据文件格式: