1. 首页
  2. 文档大全

The little SAS book 学习笔记

上传者:e****s 2022-07-08 11:05:53上传 DOC文件 8MB
The little SAS book 学习笔记_第1页 The little SAS book 学习笔记_第2页 The little SAS book 学习笔记_第3页

《The little SAS book 学习笔记》由会员分享,可在线阅读,更多相关《The little SAS book 学习笔记(164页珍藏版)》请在文档大全上搜索。

1、The little SAS book 学习笔记第一章 SAS软件入门1.1 SAS语言许多软件要么是菜单驱动,要么是命令驱动(输入命令看结果)。SAS两者都不是,在SAS中,你用一个叫做SAS程序的一系列指令语句,这些程序可以表达出你想做的事情,并用SAS语言写下来。SAS有菜单驱动栏,比如SAS企业向导模块,它使SAS看起来像一个点击的软件,但这些模块仍然使用SAS语言为你写程序。如果你试图用SAS写下你自己的程序,那就要具备一定的灵活性。SAS 程序 一个SAS程序就是一个按顺序执行的语句序列,一个语句给SAS下达信息和指令,且必须要正确的安放。一个常用来与SAS程序做类比的例子是去银行

2、取款,你进入银行、排队、轮到你,那么你会对柜台谁你想做的事,叙述语句可能会是这样:I would like to make a withdrawal.My account number is 0937.I would like$200.Give me five 20s and two 50s.注意第一句话说了你想做的事情,之后把相关信息传递给柜台并帮你完成要求。这里信息传递的顺序不重要,重要的是在你的叙述中,首先要说明你要做什么。你不能先说:“Give me five 20s and two 50s.”这会使柜台小姐一头雾水。此外,你必须确保后面的语句都围绕第一句展开。SAS语句 像任何语言一

3、样,SAS语句的编写也需要遵守一些语法规则。幸运的是,相比英语来说,SAS语句的规则不仅少,而且简单。最重要的规则是:每一个SAS语句都由一个分号结尾听起来很简单,但即使最富有经验的SAS程序员也会偶然忘记分号。如果你能记住这个规则,再来看看另外两个规则吧。SAS程序布局 让每一条语句看起来整洁、用缩进来表现语句的各个部分,这是很有用的,但不是必须的:l SAS语句不区分大小写。l 一条语句可以持续到第二行(只要不把一个单词分开)。l 几条语句可以用一行。l 可以在任何一列中开始一条语句注释 可以在你的程序中插入一些注释,让它更容易明白。即使你插入一些你喜欢的食物品名也不会对程序有所影响,因为

4、SAS不读取注释。但不要忘记注释是为了让某人更轻松的学习你的程序,并明白你为什么这么做。*Read animalsweights from file;DATA animals;INFILEc:MyRawDataZoo.dat;INPUT Lions Tigers;PROC PRINT DATA=animals; /*Print the results*/RUN;有两种注释方法,一种是*号和;号;一种是用/* */表示,注意第二种注释方法不能放在第一列错误 SAS程序通常将执行的错误标注为醒目的红色字母,你可能忘了分号,拼错了字母,按错了键盘,一个小错误会使得整个程序无法运行。当你看到红色部分多

5、余黑色部分的时候,不要灰心。1.2 SAS数据集在你进行分析、撰写报告、对你的数据进行任何处理之前,SAS必须能够处理你的数据,你的数据必须是一种叫SAS数据集的特殊形式。因为SAS非常灵活,能够读取任何形式的数据,所以将你的数据变成SAS数据集是一件非常简单的事。变量和观测值 在传统的SAS术语中,数据包括变量和观测值。采用相关的数据库的术语,SAS数据集也被叫做表、观测值也被叫做行、变量也被叫做列,你可以看到下面这个包含一些数据的表。数据类型 未加工的数据有多种形式,但SAS将其简单化。在SAS中只有两种数据类型数值型和字符型。数值型完全是数据,可以被加减乘除、可以是正负且是小数。字符变量

6、是除数值之外的类型,可以是数值、字母、和一些特殊的字符(¥、!),最多可以占用32767个字节长度。如果一个变量既包括数字又包括字符,那么它一定是字符变量。如果只包括数字,可能是字符变量也可能是数值变量。在上面这个表中,姓名是字符变量,身高和体重是数值变量,ID,既可能是数值有可能是字符,依据你的选择。缺失值 数据有时会有些不完美,某些变量的个别观测值会缺失。字符变量的缺失值用空格表示,数值变量的缺失值用句号(.)表示。上表中,体重的第五个观测值缺失,用.表示。姓名的第六个观测值缺失,用空格表示。SAS数据集的大小 在SAS 9.1之前(prior to SAS 9.1),SAS数据集可以包含

7、32767个变量,从SAS 9.1开始(beginning with SAS 9.1),SAS可包含的最多变量数由你的电脑可用资源决定(内存,CUP?)。但是超过32767个变量的SAS数据集不能用在早期的SAS版本上。SAS命名规则 为你的变量和数据集命名,使它们容易被辨别。A,B,C这样的名字可能看起来很完美,写程序的时候也很方便,但当你6个月后再使用这些数据时,你会发现name,height,weight这样的名字更有用。为变量和数据集命名时要遵守如下规则:l 名字的长度要小于等于32个字节。l 以字母或下划线开头。l 可以包含字母、数字、或者是下划线,不能是%$!*&#。l 可以是小写

8、或大写字母,且不区分大小写。SAS数据集储存的文件 SAS数据集包含了一些类似名称、创建日期、创建用的SAS版本等信息。SAS也储存了每个变量的信息,包括名称、类型、长度、数据集中的位置。这些信息叫做数据集的描述部分,它使得数据集可以自我编制(self-documenting)。1.3 SAS程序的两个过程SAS程序有两个基本模块:数据步和过程步。一个典型的SAS程序,由数据步创建SAS数据集开始,再由过程步分析数据。这里有一个例子:数据步中将米转化成千米,过程步中输出结果数据步和过程步由语句组成(废话),一个过程少至1条语句、多至几百条。新手常犯的错误是将两种过程语句用混,只要记住数据步负责

9、读取、修改数据,过程步负责分析数据、输出报告和效用函数,就不会犯错。数据步由DATA语句开始:data+数据名。上例中数据步处理了名为distance的数据。为了读取外部数据、未加工的数据,数据步提供了DO LOOPS,IF-THEN/ELSE,以及一些数值和字符函数。数据步也可以按照你想要的方式合并数据集,包括联接(concatenation)和合并(match-merge)。过程步由proc语句开始:proc+过程名(print、sort、means),SAS过程步可以处理从数据储存、输出到方差分析、3D图表的一切操作。当程序遭遇DATAPROC等标志着新程序开始的语句时,程序结束。如果运

10、行的是批处理,则run代表语句的结束。Run告诉SAS去执行所有之前的程序行,全局变量不是DATA或PROC过程的部分。上图的那个程序,当proc出现时,代表data过程结束。典型的程序是以DATA语句开头,输入或修改数据,然后将数据传递给PROC语句。但并不一定非要用这种模式来混合data和proc语句,你可以用任何顺序来排列data和proc两者的顺序,一个程序甚至可以仅有data语句或proc语句。下表是data语句和proc语句的一些基本不同点:这只是一个简化表,SAS软件非常灵活,所以data语句和proc语句之间真正的区别也是很模糊的。记住,这个表并不是说proc语句永远不能创建S

11、AS数据集,或者DATA语句永远不能够分析生成报告。1.4 数据步的内置循环Data步读取并修改数据,让你以灵活的方式控制处理数据。Data步也有一个潜在的、内置的循环语句。你不用告诉SAS去执行这个循环,SAS会自动执行。数据步按照一行一行、一个观测值一个观测值的顺序执行这句话的表意并不明确,许多新手直到成了老手都没明白这句话的含义。数据步“一行一行的执行”,这句话很好理解。但很多新手还是容易在这里出错,例如在没有创建一个变量之前就使用它,如果Z变量是X、Y两个变量组合的新变量,那么必须确定创建Z变量的语句在创建X、Y变量语句之后。而“一个观测值一个观测值的执行”就不是那么容易理解。这意味着


文档来源:https://www.renrendoc.com/paper/212692742.html

文档标签:

下载地址