您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > The-Little-SAS-Book-中文版
第一章SAS软件入门1.1SAS语言许多软件要么是菜单驱动,要么是命令驱动(输入命令——看结果)。SAS两者都不是,在SAS中,你用一个叫做SAS程序的一系列指令语句,这些程序可以表达出你想做的事情,并用SAS语言写下来。SAS有菜单驱动栏,比如SAS企业向导模块,它使SAS看起来像一个点击的软件,但这些模块仍然使用SAS语言为你写程序。如果你试图用SAS写下你自己的程序,那就要具备一定的灵活性。SAS程序一个SAS程序就是一个按顺序执行的语句序列,一个语句给SAS下达信息和指令,且必须要正确的安放。一个常用来与SAS程序做类比的例子是去银行取款,你进入银行、排队、轮到你,那么你会对柜台谁你想做的事,叙述语句可能会是这样:Iwouldliketomakeawithdrawal.Myaccountnumberis0937.Iwouldlike$200.Givemefive20sandtwo50s.注意第一句话说了你想做的事情,之后把相关信息传递给柜台并帮你完成要求。这里信息传递的顺序不重要,重要的是在你的叙述中,首先要说明你要做什么。你不能先说:“Givemefive20sandtwo50s.”这会使柜台小姐一头雾水。此外,你必须确保后面的语句都围绕第一句展开。SAS语句像任何语言一样,SAS语句的编写也需要遵守一些语法规则。幸运的是,相比英语来说,SAS语句的规则不仅少,而且简单。昀重要的规则是:每一个SAS语句都由一个分号结尾听起来很简单,但即使昀富有经验的SAS程序员也会偶然忘记分号。如果你能记住这个规则,再来看看另外两个规则吧。SAS程序布局让每一条语句看起来整洁、用缩进来表现语句的各个部分,这是很有用的,但不是必须的:SAS语句不区分大小写。一条语句可以持续到第二行(只要不把一个单词分开)。几条语句可以用一行。1可以在任何一列中开始一条语句注释可以在你的程序中插入一些注释,让它更容易明白。即使你插入一些你喜欢的食物品名也不会对程序有所影响,因为SAS不读取注释。但不要忘记注释是为了让某人更轻松的学习你的程序,并明白你为什么这么做。*Readanimals’weightsfromfile;DATAanimals;INFILE’c:\MyRawData\Zoo.dat’;INPUTLionsTigers;PROCPRINTDATA=animals;/*Printtheresults*/RUN;有两种注释方法,一种是*号和;号;一种是用/**/表示,注意第二种注释方法不能放在第一列错误SAS程序通常将执行的错误标注为醒目的红色字母,你可能忘了分号,拼错了字母,按错了键盘,一个小错误会使得整个程序无法运行。当你看到红色部分多余黑色部分的时候,不要灰心。1.2SAS数据集在你进行分析、撰写报告、对你的数据进行任何处理之前,SAS必须能够处理你的数据,你的数据必须是一种叫SAS数据集的特殊形式。因为SAS非常灵活,能够读取任何形式的数据,所以将你的数据变成SAS数据集是一件非常简单的事。变量和观测值在传统的SAS术语中,数据包括变量和观测值。采用相关的数据库的术语,SAS数据集也被叫做表、观测值也被叫做行、变量也被叫做列,你可以看到下面这个包含一些数据的表。2数据类型未加工的数据有多种形式,但SAS将其简单化。在SAS中只有两种数据类型——数值型和字符型。数值型完全是数据,可以被加减乘除、可以是正负且是小数。字符变量是除数值之外的类型,可以是数值、字母、和一些特殊的字符(¥、!),昀多可以占用32767个字节长度。如果一个变量既包括数字又包括字符,那么它一定是字符变量。如果只包括数字,可能是字符变量也可能是数值变量。在上面这个表中,姓名是字符变量,身高和体重是数值变量,ID,既可能是数值有可能是字符,依据你的选择。缺失值数据有时会有些不完美,某些变量的个别观测值会缺失。字符变量的缺失值用空格表示,数值变量的缺失值用句号(.)表示。上表中,体重的第五个观测值缺失,用.表示。姓名的第六个观测值缺失,用空格表示。SAS数据集的大小在SAS9.1之前(priortoSAS9.1),SAS数据集可以包含32767个变量,从SAS9.1开始(beginningwithSAS9.1),SAS可包含的昀多变量数由你的电脑可用资源决定(内存,CUP?)。但是超过32767个变量的SAS数据集不能用在早期的SAS版本上。SAS命名规则为你的变量和数据集命名,使它们容易被辨别。A,B,C这样的名字可能看起来很完美,写程序的时候也很方便,但当你6个月后再使用这些数据时,你会发现name,height,weight这样的名字更有用。为变量和数据集命名时要遵守如下规则:名字的长度要小于等于32个字节。以字母或下划线开头。可以包含字母、数字、或者是下划线,不能是%$!*@。可以是小写或大写字母,且不区分大小写。SAS数据集储存的文件SAS数据集包含了一些类似名称、创建日期、创建用的SAS版本等信息。SAS也储存了每个变量的信息,包括名称、类型、长度、数据集中的位置。这些信息叫做数据集的述部分,它使得数据集可以自我编制(self-documenting)。31.3SAS程序的两个过程SAS程序有两个基本模块:数据步和过程步。一个典型的SAS程序,由数据步创建SAS数据集开始,再由过程步分析数据。这里有一个例子:数据步中将米转化成千米,过程步中输出结果数据步和过程步由语句组成(废话),一个过程少至1条语句、多至几百条。新手常犯的错误是将两种过程语句用混,只要记住数据步负责读取、修改数据,过程步负责分析数据、输出报告和效用函数,就不会犯错。数据步由DATA语句开始:data+数据名。上例中数据步处理了名为distance的数据。为了读取外部数据、未加工的数据,数据步供了DOLOOPS,IF-THEN/ELSE,以及一些数值和字符函数。数据步也可以按照你想要的方式合并数据集,包括联接(concatenation)和合并(match-merge)。过程步由proc语句开始:proc+过程名(print、sort、means…),SAS过程步可以处理从数据储存、输出到方差分析、3D图表的一切操作。当程序遭遇DATA\PROC等标志着新程序开始的语句时,程序结束。如果运行的是批处理,则run代表语句的结束。Run告诉SAS去执行所有之前的程序行,全局变量不是DATA或PROC过程的部分。上图的那个程序,当proc出现时,代表data过程结束。典型的程序是以DATA语句开头,输入或修改数据,然后将数据传递给PROC语句。但并不一定非要用这种模式来混合data和proc语句,你可以用任何顺序来排列data和proc两者的顺序,一个程序甚至可以仅有data语句或proc语句。下表是data语句和proc语句的一些基本不同点:4这只是一个简化表,SAS软件非常灵活,所以data语句和proc语句之间真正的区别也是很模糊的。记住,这个表并不是说proc语句永远不能创建SAS数据集,或者DATA语句永远不能够分析生成报告。1.4数据步的内置循环Data步读取并修改数据,让你以灵活的方式控制处理数据。Data步也有一个潜在的、内置的循环语句。你不用告诉SAS去执行这个循环,SAS会自动执行。数据步按照一行一行、一个观测值一个观测值的顺序执行这句话的表意并不明确,许多新手直到成了老手都没明白这句话的含义。数据步“一行一行的执行”,这句话很好理解。但很多新手还是容易在这里出错,例如在没有创建一个变量之前就使用它,如果Z变量是X、Y两个变量组合的新变量,那么必须确定创建Z变量的语句在创建X、Y变量语句之后。而“一个观测值一个观测值的执行”就不是那么容易理解。这意味着SAS先读取一个观测值,然后对这个观测值进行数据步的所有语句(当然也是一行一行的),然后再读取第二个观测值执行。每次执行SAS只有一个观测值。我们将SAS执行的图景放慢:SAS从你的数据集中读取一个观测值。SAS对你的这个观测值执行数据步,如果数据步一直运行到结束而没有错误,SAS会把当前的观测值写入一个新的、输出数据集中,并返回到数据步开头,读取第二个观测值进行执行。当昀后一个观测值都被写入输出数据集中之后,SAS结束数据步,进入下一个步。有一个类比,数据步就像是一个投票程序。当你来到投票的地点,你会站在别人后面进行排队,排到你时,你会被问到:你叫什么名字,住在哪里。当你回答之后,你可以投票。在这里,排队的人就像是观测值,投票的程序就像是数据步。一次只能让一个人投票,每个人都相互独立。并且投票的程序是一步一步来的,你不能没说明自己的姓名和住址之前就投票。1.5选择一个交程序的方式目前为止我们讨论了写SAS程序,但仅仅写不能带给你任何结果,你必须要交并执行。有数种方法可以执行SAS程序,但不是任何方法都适合于你的操作环境。查找一下SAS帮助文5档,或者咨询下你的SAS顾问,看看哪种方法适合你的操作环境。SAS视窗环境如果你使用SAS是按照系统示,或者是点击SAS的图标,那么你适合使用SAS视窗环境。在这种交互式的环境中,你可以写入、编辑SAS程序,交处理、浏览、输出结果的SAS程序。此外,视窗有许多功能可以处理不同的任务,如管理SAS文件、定制界面、访问SAS帮助文档、导入和导出数据。你的视窗环境的界面取决于你电脑的的类型、使用的终端、电脑操作系统和启动SAS时实际的选择。如果你使用的是个人电脑,那么SAS视窗环境的感觉和其他软件类似。SAS企业向导如果你有SAS企业向导软件,这个软件在windows下即可运行。你可以用这个软件交程序:使用插入菜单打开代码窗口,输入序或打开现有SAS程。之后你可以用本地电脑、或者在远程服务器上(需要安装)运行SAS程序。非交互式模式非交互式模式是SAS程序语句已先存于你系统的文件中,直接执行那个文件。非交互式模式可以让SAS立即执行程序,通过某个指令开始($),后接文件名,如:$SASMyfile.sas批处理或后台模式在批处理或后台模式下,你的程序存于一个文件中,SAS会自动执行,你不需要在电脑旁,如果程序多,SAS会将这个程序进行排队等待。这种模式通常用在大型电脑中,因此通常可以一次性处理多个任务。批处理或后台模式的成本比较低,适合于大型工作,工作完成后,结果会存于文件夹中,你可以任何时候输出查看。批处理未必适合你的操作环境,另外交方式也会有不同,昀好查看SAS帮助文档,或咨询SAS顾问。6远程交如果你安装了CONNECT模块,可以进行远程交,即在一台电脑上(本地)编写程序,在另一台电脑上(远程)处理,结果会返回本地电脑。当你处理大型任务,而你的电脑性能又不够时,可以连接到远程的高性能电脑上,也可访问远程电脑的分享文件。交互行模式交互行模式下,SAS每次示用户输入一个语句,想改正输入的语句不是那么容易的。因此除非你足够优秀和熟练,否则昀好不要用这个模式。你可以用endsas并回车来退出这个模式:Endsas;如果你想知道为什么会进入这个模式,并且在以后避免进入,你需要咨询SAS顾问。1.6SAS视窗环境中的视窗和命令SAS视窗SAS有五种基本的视窗(窗口):结果视窗、资源管理器视窗、和三种程序视窗:程序编辑、日志、输出。除此之外,在获得SAS帮助、改变SAS系统选项、定制SAS人机会话等情况时,可能还会用到其他的视窗,下图显示了MicrosoftWindowsSAS会话中默认的视图:7编辑窗口编辑窗口中你可以输入、编辑、交SAS程序。Windows操作环境默认的是增强型编辑窗口,它对语法更敏感,并用颜色标注程序,使得更容易理解和发现错误。其他操作环境默认的是程序编辑窗口,并随操作环境和SAS版本的不同,界面特征也不同。日志窗口日志窗口是关于SAS会话的说明。在交SAS程序之后,任何的说明、错误、警告和程序语句都会显示在日志窗口上。输出窗口如果程序产生需输出的结果,那么会反映在在输出窗口中。结果窗口结果窗口就像输出窗口的一个目录表,以纲形式列出了输出的每一个部分。SAS命令S
本文标题:The-Little-SAS-Book-中文版
链接地址:https://www.777doc.com/doc-5284506 .html