Slide1第二讲SAS的数据存储与读取金融学院冯建芬博学楼707,64495048danxin_97@163.comSlide2内容提要SAS对数据文件的管理;SAS逻辑库与SAS数据集功能及其属性建立逻辑库,读入文件;建立数据集,读入原始数据;建立空数据集直接对变量赋值建立数据集直接输入数据建立数据集从其他数据集导入数据建立数据集从外部文件导入数据建立数据集输出原始数据输出到输出窗口;导出到外部文件;输出单个变量的记录;Slide3涉及章节《SAS编程技术教程》(第一版)第二章,第四章,第五章,第十三章;第六章:6.1,6.2,6.3,6.5,6.9,6.10;《SAS编程技术教程》(第二版)):第二章,第三章,第四章:4.1-4.4,4.14,第8章,第9章帮助目录:SASproductsBaseSASSASlanguagereference:dictionarydictionaryoflanguageelementsSlide4本章目的了解SAS管理数据的方式,掌握SAS的两种关键语句:data步和proc步;掌握各种引擎的逻辑库的建立;熟悉SAS程序的编写规则;掌握各种建立数据集的方式;掌握部分常用SAS语句的使用:libname,data,input,cards,put,file,infile,set;掌握部分过程的应用:print,sort,import,export熟悉SAS的表达式规则;学习如何导入导出数据;Slide52.1SAS对数据文件的管理参见《SAS编程技术教程》第二章2.1-2.2Slide6SAS作为一个信息加工和提交工具,对数据具有很强的分析和呈现功能,这些功能通过过程来实现,如print过程实现打印输出功能,means过程实现基本统计量计算功能,reg过程实现回归功能IML过程实现矩阵运算功能surveyselect,随机抽样过程等;所有这些功能只面向SAS数据集;为此SAS也提供了很多工具,用于方便实现各种格式数据文件与SAS数据集的转换,方便用户发挥各种软件的优势,这也是为什么很多金融机构使用SAS处理数据的原因之一;Slide7其它格式数据处理流程文本格式数据(txt,.csv)流行的数据库Access,oracle,DB2,Sybase其他文件格式(excel,spss等)SAS数据集SAS程序SAS数据集Slide8一、SAS文件和SAS逻辑库--逻辑库SAS逻辑库SAS数据集可以按需要存入windows的不同子目录下,但在SAS系统下,不能类似word,excel等通过浏览文件的windows地址直接访问文件,必须为文件所在文件夹建立逻辑库,然后通过逻辑库对文件进行操作。逻辑库文件Slide9SAS名称及命名规则SAS名的类型:1)逻辑库名;2)数据集名;3)变量名;6)数组名;一、SAS文件和SAS逻辑库--逻辑库Slide10首字符必须为英文字母(A-Z,包括大写和小写)或下划线(_);由数字、字母和下划线组成;不区分大小写一、SAS文件和SAS逻辑库--逻辑库命名长度:逻辑库名:最多不超过8个字符;数据集名,变量名,数组名:最多不超过32个字符Slide11一、SAS文件和SAS逻辑库--逻辑库例2.1:____,data_1,data_b,_abc_正确数据库_1,data-1不正确Slide12建立逻辑库工具栏方式打开explorer的library,单击工具栏中的““;程序方式:LIBNAMElibrefengine'SAS-data-library'optionsengine/host-options;例2.2建立逻辑库data_1,指向D:\libnamedata_1‘d:\’;一、SAS文件和SAS逻辑库--逻辑库Slide13逻辑库的种类分为临时逻辑库和永久逻辑库两种。临时逻辑库中的文件只在SAS进程中存在,关闭SAS系统就会被自动删除,SAS只有一个临时逻辑库--work;永久逻辑库:其他系统默认逻辑库和用户建立的逻辑库都是永久逻辑库,其中的文件一旦建立不会被自动删除,可以永久保留在指定的windows文件夹中,但逻辑库名在SAS进程结束(即关闭SAS系统)后可能失效,除非选中“启动时启用”选项。一、SAS文件和SAS逻辑库--逻辑库Slide14引用SAS文件指定逻辑库名以后,就可以用两级命名方式引用SAS文件:逻辑库名.文件名第一级为逻辑库名,第二级为文件名,中间用英文句点分开。例2.3在逻辑库redat1中建立数据集a;Datadata1.a;/*数据集a在data1逻辑库中*/Run;Dataa;/*数据集a在work逻辑库中*/Run;一、SAS文件和SAS逻辑库--逻辑库Slide15数据集SAS数据集是一种由SAS系统建立、维护和管理的数据文件,只有数据集才能被大部分过程作为处理的数据对象。SAS数据集格式的数据可以被快速打开,并进行浏览、修改和加工;SAS数据集格式的数据可以进行各种分析处理和用表格及图形进行展示;一、SAS文件和SAS逻辑库--数据集Slide16数据集构成一个数据集包括两个组成部分:描述部分和数据部分;数据部分是打开逻辑库中的文件时展现在我们眼前的部分,是数据值的集合。NameSexAgeHeightWeight1JoyceF1151.350.52ThomasM1157.5853JaneF1259.884.54LouiseF1256.3775JamesM1257.3836JohnM125999.57RobertM1264.8128变量名观测号观测一、SAS文件和SAS逻辑库--数据集Slide17描述部分:即属性,包含以下部分数据集的名称创建数据集的日期和时间观测的个数变量的个数数据集的属性除名字(name)外,还可以添加标签(label),方便描述数据集存储数据的特性数据集中的每一个变量也有属性:类型、名字(name)、标签(label)、长度(length)、输入/输出格式(informat/format)等一、SAS文件和SAS逻辑库--数据集Slide18变量属性-标签(label)书写规则可以是中文、英文字母等任何符号;最长不超过256个字符;变量属性-类型(type)只有字符型(character),数值型(numeric)两种类型,一个变量只能属于一种类型;数值型变量只能是合法的数值,缺失值为”.”。日期属于数值型变量,取整数值,日期数据将1960年1月1日取值为0,每加1代表增加1天,日期时间数据将1960年1月1日00:00:00取为0,每加1代表增加1秒。字符型变量的值可以是任何字符串,,如“中国”“Alex”“Hello!123”等,缺失值为“”;一、SAS文件和SAS逻辑库--数据集Slide19变量属性-输入格式(informat)确定数据如何读入到SAS数据集;变量属性-输出格式(format)确定数据如何显示,即打开数据集我们看到的格式;具体输入输出格式可以参见《SAS编程技术教程》第十三章;(第一版),(2版,8章)一、SAS文件和SAS逻辑库--数据集Slide20数据视图:除我们常用的数据集外,还有一种数据视图,参见《SAS编程技术教程》第二章P34页,2.2.4节;例:dataa/view=a;setdata.class;Run;目录册:特殊的SAS文件,用于存放多种不同种类的信息文件,比如可以将一系列的图放在一个目录册里,便于引用;(参看SAShelp逻辑库)一、SAS文件和SAS逻辑库--其他文件*Slide21二、建立逻辑库,读入外部文件*SAS访问外部文件可以通过两种方式:一种是将外部文件转换成SAS数据集(这种方式在2.2节会学习到);另一种通过建立不同引擎的逻辑库进行访问,通过LIBNAME语句和库引擎连接的外部文件有两类:其他SAS版本或分析软件的数据集;流行数据库(DBMS)当对DBMS指定了逻辑库名之后,就可以把它的表当作象SAS数据集一样,用标准的两级命名(逻辑库名.文件名)引用DBMS中的表。BMDPCRSPACCDB2FAMECHLIODBCOLEDBORACELOSIRISREMOTEREMOTE6REUTERSSPSSSYBASETERADATAV6V604V8XMLXPORTSAS9.1系统支持的库引擎参见第一版第四章4.3节Slide22二、建立逻辑库,读入外部文件*例2.3连接SAS6版本数据集。libnamedatav6V6'd:\data';run;例2.4连接SPSS数据集。libnamespssspss'd:\data';run;例2.5连接ODBC数据源,访问SQL-Server参见第一版第四章4.5节Slide232.2建立数据集,读入原始数据Slide24建立空数据集一般通过程序建立一、建立空数据集例2.61.建立空数据集a;a)Dataa;Run;b)datadata.b;Delete;Run;Slide25二、SAS程序的构成及编写规则SAS程序的构成SAS程序是由SAS语句构成的,构成一个语句由下面两种方式:一种是由关键词开始;这种语句都有固定的格式,具体格式可以通过SAS的帮助文件查到;如以“data“开头的语句,可以通过在索引中输入“datastep”参看其应用方式;一种是SAS的表达式;可对变量进行加减乘除等运算,如x=y+5;也可产生新变量,具体可参见第二章2.4节P41-45。无论是哪种方式,SAS的语句都是以分号(;)结束Slide26由SAS关键词构成的语句又分为两种程序步:数据步以Data关键词开头,用于读入源数据文件和SAS数据集,修改、编辑或创建SAS数据集或文本文件,是进行数据处理使用最多的程序步。该程序步设计非常灵活,需要你根据自己的要求设计不同的语句,如是否需要使用表达式、是否需要循环语句等等。过程步以proc关键词开头,面向已有的SAS数据集,完成某个特定的计算、分析和呈现功能,如进行统计分析、回归、画图、排序、打印等,也用于调用某些模块,如IML,SQL相对data步,proc步的格式相对固定,只需根据自己的需求设定每个过程的参数即可。每个过程步的使用方法参见SASproductsBaseSASBaseSAS9.2proceduresguideproceduresSAS程序的构成(续)Slide27一般情况下,语句都要写在程序步中,但全局通用语句例外。全局通用语句一般为SAS提供信息、索取信息或数据,在不同运行模式之间转移,给系统选项设定值等。可以用在SAS程序的任何地方。如libname:建立逻辑库options:设定SAS系统选项x:发布主机操作系统命令,(MS-DOS命令)详细可参见第11章SAS程序的构成(续)帮助信息:BaseSAS-SASlanguagereference:dictionarydictionaryoflanguageelementsglobalstatementSlide28例2.7全局通用语句的使用:a)X语句(Xcommand)xmkdird:\data1;/*在d盘建立文件夹data1*/xcdg:\;/*将当前盘符设为g:\盘*/xcdg:\data;/*将当前文件夹设为g:\data*/xdirg:\data\stk*.*/bg:\data\outlist.txt;/*从data文件夹的文件列表中寻找文件名前三位是’stk’的文件,并将文件名输出到outlist文本文件*/最后一行在进行文件批处理时非常有用!SAS程序的构成(续)系统命令可在cmd窗口下输入help查到;或者:程序附件--命令提示符Slide29b)Options的使用:Optionsxwait;(运行cmd窗口后不关闭)Optionsnoxwait;(运行cmd窗口后关闭)Optionsobs=5(只打印