SASBASE入门快速的哦^_^本篇概要1.SAS系统简介2.用SAS读取外部数据(rawfile)3.用SAS读取和处理SAS数据集4.SAS数据集的连接1.SAS系统简介a)系统介绍b)功能模块c)界面分布d)逻辑库介绍e)建立一个新的逻辑库f)SAS数据集g)SAS语句简介h)功能键i)SAS语句执行过程及PDV概述1.a系统介绍全称为StatisticsAnalysisSystem,最早由北卡罗来纳大学的两位生物统计学研究生编制1972研制出第一版,1976年成立了SAS软件研究所,正式推出了SAS软件,现在是8.2版是用于数据分析与决策支持的大型集成信息系统,统计分析功能是它的重要组成部分和核心功能国际上的标准软件系统1.b功能模块SAS功能模块BASESAS模块SAS/STAT---统计分析模块SAS/GRAPH---绘图模块SAS/AF---交互式应用开发模块SAS/ACCESS---访问外部数据模块SAS/CONNECT---分布式数据处理模块1.b功能模块SAS/ASSIT---菜单驱动界面模块SAS/INSIGHT---可视化探索工具模块SAS/ETS---经济计量学和时间序列分析模块SAS/OR---运筹学模块SAS/QC---质量控制模块SAS/IML---交互式矩阵程序设计语言模块SAS/FSP---快速数据交互式菜单系统模块SAS/EIS---企业信息系统模块SAS/CALC---电子表格模块SAS/WA---企业级数据仓库管理模块SAS/EM---企业级数据挖掘模块1.c界面分布菜单栏工具栏功能窗口SAS窗口条命令行1.c界面分布缺省情况下的活动窗口SAS资源管理器窗口结果窗口编辑器窗口(F5)日志窗口(F6)输出窗口(F7)1.c界面分布资源管理器窗口管理SAS逻辑库和文件快捷方式逻辑库存贮SAS文件文件快捷方式标识外部文件四个系统逻辑库:MapsSashelpSasuserWork1.c界面分布编辑器窗口编辑器窗口用来编辑SAS程序编辑器能够实现如下的功能对SAS语言的彩色编码和语法检查可展开或折叠程序片段可记录宏支持键盘快捷方式(Alt或Shift)加上其它键多层撤消和恢复1.c界面分布日志窗口程序行黑色:以语句标号开始提示蓝色:以NOTE开始警告绿色:以WARNING开始错误红色:以ERROR开始1.c界面分布输出窗口输出SAS程序的执行结果1.c界面分布结果窗口结果窗口可以查看和管理SAS程序的输出结果1.d逻辑库介绍从SAS系统来看,它所建立的众多的SAS文件可按不同需要将其归入若干个SAS逻辑库,以此来对SAS文件进行访问和管理。一个SAS逻辑库就是一组SAS文件。SAS逻辑库也是一个逻辑概念,在Windows环境下,一个逻辑库就是存放在同一个文件夹或几个文件夹中的一组SAS文件。1.d逻辑库介绍从SAS系统内部看,每个SAS文件也有表明它属性的类型,如SAS数据集的类型为data(数据文件)或view(数据视图),catalog等。注:catalog是sas目录,在catalog中存放的是frame,scl,类等AF组件以及其他sas文件。1.d逻辑库介绍Work数据库叫做临时库,存放在其中的SAS文件叫临时文件,这些临时文件当退出SAS系统时会被自动删除。Sasuser库保存与用户个人设置有关的文件,它是永久的,即退出SAS时文件不会被删除。Sashelp库保存与SAS帮助系统、例子有关的文件,是永久的。MapsSAS系统的四个预定义数据库:1.e建立一个新的逻辑库建立一个新逻辑库的两种方法:通过菜单通过语句1.e建立一个新的逻辑库用菜单操作:在资源管理器窗口双击逻辑库图标。选文件→新建输入newlib,引擎选项中保留默认项,选中启动时启用可以选择其他的引擎,读入不同格式的数据文件。点击浏览按钮,选上这个数据库的目录,点击确定。点击确定按钮,在资源管理器窗口出现newlib图标。1.e建立一个新的逻辑库1.e建立一个新的逻辑库用LIBNAME语句:LIBNAMElibref‘SAS-data-library’options;其中libref是逻辑库名,如newlibSAS-data-library是逻辑库的路径例:用LIBNAME语句创建SAS逻辑库。Libnamefdata‘d:\fdata’;Libnamestoindvf‘d:\stoindvf’;例中,创建SAS逻辑库FDATA和stoindvf。分别对应物理文件夹为D:\fdata和D:\stoindvf.1.fSAS数据集在SAS系统中,数据是以数据集的形式来存储和处理的。SAS数据集(SASDatasets)可以看作由若干行和若干列组成的表格。SAS数据集存放在以特殊格式存放的二进制文件中,用一个SAS逻辑名来使用SAS数据集,不需要知道它在磁盘存储的物理地址。数据集的每一行叫做一个观测(Observation),每列叫做一个变量(Variable)。SAS数据集等价于关系数据库系统中的一个表,SAS数据集有时也称作一张表。SAS数据集后缀为.sas7bdat1.fSAS数据集有关SAS数据集命名的约定SAS名字由英文字母、数字、下划线组成;第一个字符必须是字母或下划线;名字最多用32个字符,大写字母和小写字母不区分。SAS名中不能有空格和一些特殊字符($,@,#);系统保留了一些特殊的变量名,如_N_,_ERROR_等。1.fSAS数据集SAS数据集用两级水平名命名:第一级名字是SAS逻辑数据库的库名;第二级是文件的名字。例如Sashlep.Class,Sashelp是数据库的名字,而Class则是文件本身的名字。1.fSAS数据集临时数据集和永久数据集的区别:临时库数据集可以使用单水平名或双水平名;而永久库数据集必须使用双水平名字来加以确认。例如Work.Class和Class都代表临时库中的文件,而Sashlep.Class则是永久库中的文件。1.gSAS语句简介SAS语句由关键词开始,分号结束。语句中间的SAS名,过程名和运算符等为SAS系统提供信息或执行操作。例3.1有效的SAS语句。datadata1;putname$8.;formatdateyymmdd10.;procmeansdata=fdata.class;infiled:\fdata\class.txt;doI=1to100;X=Y+1;SUMX+X;end;run;1.gSAS语句简介SAS语句格式:KEYWORDparameter…Item1|item2…|itemnoptions;关键词参数…项目1或项目2…或项目n选项;其中:粗体---必须按显示形式书写的关键词;白正体---用户提供的信息;---括号内的信息可选;|---任选。参数PARAMETER不是任选项,不用括号,OPTIONS是选项关键词。1.gSAS语句简介数据步与过程步一组SAS语句组成一个SAS程序。SAS程序中的语句可分为两类步骤:数据步;过程步。所有SAS程序均有数据步和过程步两大模块构成。1.gSAS语句简介数据步数据步编译、创建和修改SAS数据集或文本文件、读入源数据文件和SAS数据集。数据步以DATA语句开始。例3.2数据步创建SAS数据集。dataA;setfdata.a1a0001;keepdateclpr;run;例中,由数据步产生数据集A,数据来源于SAS数据集FDATA.A1A0001(上证指数)的日期DATE和收盘价CLPR。1.gSAS语句简介过程步过程步面向SAS数据集,完成对数据集的加工整理、分析和呈现等功能。过程步以PROC语句开始。例3.3应用统计量均值过程。procmeansdata=fdata.a1a0001;varclpr;outputout=Mmean=CLPR_M;run;例中,过程步调用SAS的MEANS过程,对数据集FDATA.A1A0001(上证指数)中的收盘价CLPR求得均值CLPR_M,并将产生的结果存贮在数据集M中。1.gSAS语句简介一般特点:语句用分号结束不区分大小写空格、空行一般可以任意放置SAS的变量分字符型和数值型字符型变量缺失时,变量为空数值型变量缺失时,变量为.SAS程序由数据步和过程步构成1.h功能键F9调出功能键窗口。例如F3、F8是提交SAS程序F4是调用刚提交的程序F5、F6和F7分别是调用编辑器窗口、日志窗口和输出窗口。CLT+E是清除窗口中的内容1.iSAS语句执行过程及PDV概述当一个DATA步被提交时,提交的语句先被编译成SAS内部编码,以在PDV区域搭建临时库。PDV(ProgramDataVector),是存储DATA步运行过程中每一个变量的记忆区。在程序执行过程中,观测值在PDV中生成,然后通过output语句输出到SAS数据集。DATA步每次只处理一个观测值,重复执行,直到最后一个观测处理完,执行完成。在默认情况下,每次DATA步从头开始执行时,PDV会被清空。2.用SAS读取外部数据(rawfile)通过SAS语句或向导,可以方便地导入或导出多种类型的外部数据文件,如xls,csv,txt,dbf等。本章主要介绍如何用data步导入非固定格式的也即自由格式的外部数据。2.用SAS读取外部数据(rawfile)Data…;InfilefilerefDLM=’characters’missoverfirstobs=x;Input@kvar1$:formatvar2m-n@@@/;Run;2.用SAS读取外部数据(rawfile)Fileref:导入文件路径及名称DLM:分割符,默认为空格。Missover:允许空值。Firstobs:从第x行读取数据@k:从第k位开始读数据。$:定义的变量为字符型。Format:定义变量格式。M-n:读取m-n位。@:停顿符。@@:继续读取。/:换行符。注:以从左到右的顺序读取数据。所有变量默认长度为8位,如读入数据超出8位,需在之前定义2.用SAS读取外部数据(rawfile)例1:读入以空格分割的数据。2.用SAS读取外部数据(rawfile)例2:读入以冒号分割的数据2.用SAS读取外部数据(rawfile)输出为:2.用SAS读取外部数据(rawfile)例3:改变相关变量的格式:2.用SAS读取外部数据(rawfile)输出为:2.用SAS读取外部数据(rawfile)例4:用missover读取数据2.用SAS读取外部数据(rawfile)输出为:2.用SAS读取外部数据(rawfile)如果不用missover:2.用SAS读取外部数据(rawfile)输出为:2.用SAS读取外部数据(rawfile)例5:用换行符/读入数据2.用SAS读取外部数据(rawfile)输出为:2.用SAS读取外部数据(rawfile)例6:@k,m-n,@的运用2.用SAS读取外部数据(rawfile)2.用SAS读取外部数据(rawfile)输出为:注:@为停顿符,在本例中,读完第8位后停顿,判断后继续读取本行数据,而不换行。2.用SAS读取外部数据(rawfile)例7:运用@@2.用SAS读取外部数据(rawfile)输出为:3.用SAS读取和处理SAS数据集a)Set语句b)DATA步的一般选项c)函数的介绍d)控制语句循环条件3.aSet语句SET语句可以从一个已经存在的SAS数据集创建新的数据集,它的一般形式:DATAnew;SETold;其他SAS语句;RUN;使用了SET语句后:所有SET语句指定数据集中的变量自动被读入PDV(除非使用了SET语句的一些特殊选项如KEEP=和DORP=选项)3.bDATA步的一般选项byKeep/DropRenameWhereFor