SAS入门教程1---SAS系统简介

 

第一章  SAS系统简介

 

一.      概述

SAS (Statistical Analysis System) 是一个模块化、集成化的大型应用软件系统。它由数十个专用模块构成,功能包括数据访问、数据储存及管理、应用开发、图形处理、数据分析、报告编制、运筹学方法、计量经济学与预测等等。

SAS系统基本上可以分为四大部分:

1.   SAS数据库部分

2.   SAS分析核心

3.   SAS开发及呈现工具

4.   SAS对分布处理模式的支持极其数据仓库设计

SAS系统主要完成以数据为中心的四大任务:

1.   数据访问

2.   数据管理

3.   数据呈现

4.   数据分析

 

二.      基本概念

SAS系统是一个跨平台的系统,可在许多操作系统下运行,(包括DOS, WINDOWS, UNIX等),但无论在什么环境下,它都提供一个统一的运行环境。首先我们要了解一下SAS的一些基本概念。

1.     SAS Data Libraries (SAS数据库)

所有的SAS文件储存于SAS数据库,这些文件包括SAS的数据集(data sets)、目录(catalogs)和程序(programs)等。或者说,SAS数据库就是这样一些文件的集合。

在有些环境中,SAS数据库就是储存在一起的一些文件,比如在WINDOWS或UNIX下,一个Library就是指在同一目录下的一组文件;而在另外一些环境中,同一个SAS数据库中的文件并不一定是储存在一起的,它们只是在逻辑上有关联。

为了访问一个数据库,你要给每个数据库设一个标记,称为libref (libraryreference),这样在SAS 的执行过程中,就用这一标记来表示这个数据库。

例如:对于一个SAS数据库,它指在一个目录 d:\hu\data1 下的一组文件,你可以给它一个名字,比如叫lib1,这个lib1就是该数据库的标记(libref)。

2.     Temporary and Permanent SAS Libraries (SAS的临时和永久库)

SAS数据库分为临时库和永久库两种。临时库只有一个,标记为work,它在SAS每次启动后生成,SAS结束时库中所有数据被自动删除;其它的库均为永久库,SAS结束时不会自动删除永久库中的数据,但库标记都是临时的。SAS每次启动时会自动指定两个库标记,一个是work,另一个是sasuser,其中work是临时的,sasuser是永久的,用户可以根据自己的需要用libname命令指定其它的永久库。

3.     SAS Files (SAS文件)

SAS文件是指储存在SAS数据库中的成员, SAS文件的主要类型有:

1)    SAS数据集,包括DATA和VIEW

2)    SAS目录,CATALOG

3)    SAS程序,包括PROGRAM和ACCESS

4.     Referencing SAS Files (指定SAS文件)

每个SAS文件都有一个二级名(two-level name),第一级是库标记,第二级是文件名,中间用点(.)分隔。在程序中通过指定二级名来识别SAS文件。

例如: sasuser.class 指储存在永久数据库sasuser中的SAS文件class。

  而 work.mytest指储存在临时数据库work中的SAS文件mytest。

  而 lib1.work指储存在用户指定的永久数据库lib1中的SAS文件work。

注意,你可以用一级名(one-level name)来表示一个临时文件,因为第一级库标记的缺省值是work。

5.     SAS Data Sets (SAS数据集)

一个SAS数据集是一个SAS文件,一般它由以下两部分组成:

1)描述部分:包含该数据集的一般信息,包括

A.    数据集的名字及其成员类型

B.    数据集建立的日期和时间

C.    观测的数目

D.    变量的数目

以及数据集中每一个变量的特征信息,包括

A.    名字

B.    类型

C.    长度

D.    位置

E.    格式

F.    标记

2) 数据部分:包含该数据集中收集的数据的值,可以看作是一个矩形的表格。

表格的列(Columns)称为变量(Variables),对应于原始数据文件或其它一些外部数据库所称的阈(fields)。

  表格的行(Rows)称为观测(observations),对应于原始数据文件或其它一些外部数据库所称的记录(records)或数据行(data lines)。

6.      SAS Names (SAS的名字)

SAS数据集和数据集中的变量都有名字,这些名字的命名应该尽量使其能反映数据集中储存的信息的内容。对所有的SAS的名字有以下命名规则:

1)长度为1-8的字符

2) 以字母(a-z)或下划线(_)开始

3) 接以数字、字符或下划线的任意组合。

例如: month   class  A1_2    B   _1990       B2B

      均可用作SAS的名字,而

      firstname   2nd Class-A

      则不可用作SAS的名字。

7.      Variable Type(变量的类型)

变量的类型可以分为字符型和数值型。

1)字符型变量可以包含任意字母和其它符号

2)数值型变量只能包含数值(数字0-9,+,-,.,及科学记数法中用的E)

SAS系统中对变量的遗漏数据表示为:

1)字符型变量的遗漏数据用空格表示

2)数值型变量的遗漏数据用点(.)表示

8.     Variable Length andPosition(变量的长度和位置)

一个变量的长度(用于储存该变量的字节数)依赖于的的类型

1)字符型变量可以包含1到200个字符

2)数值型变量的缺省长度为8

除非另外设定其长度,数值(不管包含多少位小数)都按照浮点数储存在8个字节中。

在SAS数据集中,变量的位置由变量的顺序决定,一般来说在SAS数据集的使用中不必关心变量的位置。

9.      Variable Formats(变量的格式)

变量的格式包括输入格式(informats)和输出格式(formats),它们分别影响数据读入和显示的方式,SAS系统对数值型和字符型数据提供多种输入和输出格式

1)读入包含字母和特殊符号的数值时,必须使用输入格式

例如:$1,234 à COMMA. à 1234

读入数据"$1234"中包含美元符号"$"和逗号",",利用输入格式(COMMA),得到标准的数值"1234"。

2) 当希望以特定形式显示时,要使用输出格式

例如:1234 à DOLLAR9.2 à $1,234.00

3) 关于日期的格式

例:14JAN90 àDATE7. à 10971 à MMDDYY8. à 01/14/90

10.    Variable Labels(变量的标记)

每个变量还可以有一个标记,通常每个变量的含义由变量名来表达,但变量名仅限于8个字符的长度,有时候就需要设定一个标记来反映该变量更多的信息。

变量的标记可由最多40个字符的说明文字组成。

11.    Characteristics of SASPrograms (SAS程序的特征)

SAS程序有两种类型的程序步(steps)组成:

      数据步(DATA steps)和过程步(PROC steps)

1)  数据步(DATA steps)通常用于创建SAS数据集,但也可以用于产生特别设计的报表。

2)  过程步(PROC steps)通常用于以SAS数据集的形式分析和处理数据,但有时候也可用于创建数据集。

一个SAS程序就是由数据步、过程步或两者的任意组合而成。每一个步通常由若干语句(statements)构成。

一个SAS语句有两个重要特征:

1) 它通常由SAS关键词(keyword)开始

2) 它总是以分号";"结束

SAS程序例子:

           data bankacct;

                           infile records;

                input name $ 1-10 accttype $12-20

                      deposit 22-25 withdraw27-30;

           proc print data=bankacct;

           proc means data=bankacct mean; 

                 var deposit withdraw;

           run;

      一个数据步由关键词DATA开始,而一个过程步由关键词PROC开始。

SAS语句是自由格式的,也就是说

1)  它们可以在任一列开始和结束

2)  一个语句可以由几行组成

3)  几个语句可以在同一行内

SAS语句中的词(words)之间用空格或特殊符号分隔。

12.    Processing SAS Programs(SAS程序的处理)

     当一个SAS程序被提交(submit)时,每一个DATA、PROC或RUN语句会导致前面的程序步被执行,所以,一个SAS程序应以RUN语句结束,否则,最后一个程序步不会被执行。

每一程序步被分别执行,执行时,SAS系统会产生一个日志(SAS log)记录执行过程中的信息和可能发生的任何错误。执行的结果根据SAS程序的不同而有所不同:

1)  SAS程序经常涉及一些过程,它们会创建报表形式的输出(output)

2)  有些SAS程序的执行会创建一个窗口过程

3)  也有一些SAS程序执行诸如排序或数据处理过程,除了在日志中的记录之外,不产生可见的输出结果。


三.      显示管理系统(Display Manager)

SAS系统提供一个强有力的交互式用户界面,称为显示管理系统(Display Manager),一进入SAS就自动启动显示管理系统。显示管理系统主要由以下几个窗口组成,它们可以完成许多SAS的基本任务:

窗口名

完成任务

Program Editor

edit and execute programming statements

Log

check the contents of the SAS log

Output

browse procedure output

Output Manager

manage procedure output

Keys

set function keys

Help

get help about the SAS System

前四个为显示管理系统的四个基本窗口。

1.    The PROGRAM EDITOR and LOGWindows(程序编辑窗口和日志窗口)

显示管理系统的四个基本窗口中包括程序编辑窗口和日志窗口,一进入SAS就会看到这两个窗口。

在程序编辑窗口中,你可以

1)       输入、编辑和提交程序语句

2)       打开以前储存的程序

3)       将程序存入文件

在日志窗口中,你可以看到你提交的程序执行过程中系统产生的一些信息。

2.    The OUTPUT Window(输出窗口)

当你的程序产生输出结果时,输出窗口会自动显示。在输出窗口中,你可以浏览你当前的SAS程序产生的输出结果。

3.    The OUTPUT MANAGER Window(输出管理窗口)

在输出管理窗口中,你可以浏览(Browse)、编辑(Edit)、删除(Delete)、储存(File store)和打印(Print)SAS的输出结果。输出管理窗口可通过以下方式打开:

       Globals à Present à View output

在输出管理窗口中,对每一条输出,它会显示

1)      产生该输出的过程名

2)      起始页数

3)      长度(页数)

4)      一段描述

你可以在每一条输出显示的左边,键入B、E、F和P等命令来执行相应的操作。

4.    Activating Windows(激活窗口)

激活窗口实际上是指当前你可以输入指令或进行编辑的窗口,它可以是程序编辑窗口或日志窗口等任何一个窗口。激活一个窗口的方法可以是:

1)      将光标移至该窗口,并按“ENTER”键或鼠标键

2)      输入与该窗口名相应的指令

5.    Issuing Commands(发布命令)

在显示管理系统中,你可以有三种方式输入你的指令

1)      利用操作工具栏(action bar)

2)      在命令行(command line)中直接输入命令

3)      利用功能键

在某一个窗口中的输入方式可以是操作工具栏,也可以是命令行,在许多系统中通常设定操作工具栏为缺省输入方式,可通过以下方法切换为命令行方式:

       Globals à Options à Command line

在命令行方式下,可通过输入“COMMAND”命令切换为操作工具栏方式。

6.    Submitting a Program(提交程序)

当你在程序编辑窗口中完成程序的输入或修改以后,可以按以下方法提交你的程序:

              Locals à Submit

在程序执行过程中,SAS系统在日志(LOG)窗口中记录以下信息:

1)      提交的SAS语句

2)      关于数据读入的提示信息,包括数据的位置、读入的记录数、记录的最大长度等

3)      程序运行成功的确认信息,或者不成功时的错误信息提示和警告

7.    Clearing Messages(清除信息)

在SAS运行过程中,LOG窗口和OUTPUT窗口中的信息是累积的,如果你不希望保留以前运行过程中产生的LOG和OUTPUT,可以按以下方法清除这些信息:

       Edit à Clear text

8.    Recalling Your Program(重新调出程序)

你可以按以下方法把上次提交的程序重新装入PROGRAM EDITOR 窗口:

       Locals à Recall text

用这一方法,在程序调试中可以很方便地修改错误。

9.    Storing a File(储存文件)

你可以在PROGRAM EDITOR 窗口中按以下方法把程序存入外部文件:

       File à Save as à ……

在LOG或OUTPUT窗口中也可以按同样方法半日志或输出结果存入外部文件。

10.   KEYS Window(功能键窗口)

功能键窗口允许用户定义或改变功能键所代表的命令。要进入功能键窗口,以下两种方法均可:

1)      在命令行中输入“KEYS”即可

2)      选择       Help àKeys

功能键窗口列出了所有功能键所代表的命令,用户可以修改它们,完成之后用

       File à end

退出该窗口即可。

11.    HELP Window(帮助窗口)

为得到显示管理系统或SAS的有关帮助信息,可进入帮助窗口,进入方法为:

1)  在命令行中输入“HELP”, 或

2)  选择       Help à SAS System

12.    Other Windows(其它窗口)

除了以上提到的这些窗口之外,显示管理系统还包括许多其它窗口,例如

窗口名

完成任务

打开方法

LIBNAME

Check librefs assigned for your current SAS session

1)   在命令行中输入“LIB”, 或“LIBNAME”

2)   选择 Globals à Access à Display libraries

OPTIONS

Set SAS system options

1)            在命令行中输入“OPTIONS”

2)     选择 Globals à Options à Global options

FILENAME

List all current SAS file reference names

1)   在命令行中输入“FILENAME”

2)   选择 Globals à Access à Display filenames

13.   Frequently Used Commands (常用命令)

显示管理系统提供了许多命令,以下是一些非常常用的命令:

BYE

推出SAS

CLEAR window-name

清除指定窗口中的内容

END

退出当前窗口

FILE 'filename'

储存到指定文件

HELP

打开帮助窗口

INCLUDE 'filename'

引入指定文件

KEYS

打开功能键窗口

LIBNAME

确认SAS数据库内容

LOG

进入LOG窗口

NUMS

打开或关闭程序编辑器的数字区

OPTIONS

进入OPTIONS窗口

OUTPUT

进入OUTPUT窗口

PRAGRAM

进入PROGRAM EDITOR窗口

RECALL

调出上次提交的程序

SUBMIT

提交程序

 

四.      SAS程序的调试

上面我们了解了如何提交一个SAS程序,解释了运行过程产生的LOG和OUTPUT,并且知道了如何保存你的SAS程序。下面,我们要讨论当你的SAS程序中存在错误时,你应该如何找到这些错误并进行修正,也就是说,如何来对你的SAS程序进行调试。

1.     Including a Stored Program(引入一个已储存的文件)

如果你想要调试的SAS程序原来已经储存在外部文件中,那么你可以在程序编辑器中选择

        File à Open

然后找到你需要的文件,确认后,该文件就被调入程序编辑器中。这跟你直接在程序编辑器中输入是一样的,只是比起每次重复输入要简单得多。

接下来,你就可以对程序编辑器中SAS程序进行修改,或将它提交SAS系统运行了。

2.  Syntax Errors(句法错误)

当你把一个SAS程序提交后,你希望它能正确运行,并显示出你希望看到的结果,但有时候,由于你的疏忽或其他某种原因,你的SAS程序中存在一些错误,导致它不能正确运行。这时,你就需要找到错误并改正它。`在SAS程序中,最常见的,也是最容易发现的一类错误是句法错误,句法错误大致包括

1)       关键词拼写错误

2)   语句末的分号遗漏

3)   设定无效选项(invalid options)

4)   遗漏必要的语句

当SAS在运行过程中发现句法错误时,它会在       LOG窗口中显示“ERROR”,并指出错误发生的位置以及可能的原因。因此,当你的SAS程序没有按照你的期望正确运行的话,你就应当到LOG窗口中寻找可能产生错误的原因,并设法修正它。

句法错误通常会导致错误所在的程序步停止运行。

3.  Text Editor Commands(文本编辑器命令)

为了修正或修改你的SAS程序,你可以使用“RECALL”命令将刚才提交的SAS程序调回程序编辑器,然后用文本编辑器命令来进行编辑。

文本编辑器命令可以让你删除(delete)、插入(insert)、移动(move)、复制(copy)和重复输入(repeat)文本,这些命令必须在程序编辑器的行数区(line numberarea)输入。如果在你的程序编辑器中没有显示行数,你可以输入“numbers”或“nums”命令,或选择“EditàOptionsàNumbers”来打开程序编辑器的行数区。

下面列出这些文本编辑器命令

命令

功能

Cn

复制(copy) n行

Dn

删除(delete) n行

In

插入(insert) n行

Mn

移动(move) n行

CC

复制(copy)块(block of lines)

DD

删除(delete) (block of lines)块

MM

移动(move) (block of lines)块

A

之后(与C,CC,I,M及MM配合使用)

B

之前(与C,CC,I,M及MM配合使用)

下面举几个例子说明如何使用这些文本编辑器命令:

1)       删除第三行:

将光标移至行数区第三行,按“D”, 然后按“ENTER”即可。

2)       删除第三至第七行:

将光标移至行数区第三行,按“D5”, 然后按“ENTER”即可。

或者:

将光标移至行数区第三行,按“DD”, 然后将光标移至行数区第七行,按“DD”,最后,按“ENTER”即可。

3)   在第三行前插入一行:

将光标移至行数区第三行,按“IB”, 然后按“ENTER”即可。

或者:

将光标移至行数区第二行,按“I”, 然后按“ENTER”即可。

4)   在第三行后插入四行:

将光标移至行数区第三行,按“I4”或“IA4”, 然后按“ENTER”即可。

或者:

将光标移至行数区第四行,按“IB4”, 然后按“ENTER”即可。

5)   将第三行至第五行移至第七行后

将光标移至行数区第三行,按“M3”, 然后将光标移至行数区第七行,按“A”,最后,按“ENTER”即可。

或者:

将光标移至行数区第三行,按“MM”, 然后将光标移至行数区第五行,按“MM”,再将光标移至行数区第八行,按“B”,最后,按“ENTER”即可。

6)   将第三行至第五行复制至第七行后

将光标移至行数区第三行,按“C3”, 然后将光标移至行数区第八行,按“B”,最后,按“ENTER”即可。

或者:

将光标移至行数区第三行,按“CC”, 然后将光标移至行数区第五行,按“CC”,再将光标移至行数区第七行,按“A”,最后,按“ENTER”即可。

4.  Clearing Contents(清除内容)

在程序调试过程中,你可能需要清除某些窗口中的内容,以便更清楚地看到最近一次执行过程中显示的信息。为清除某窗口中的内容,你可以在该窗口中选择:

     Edit à Clear text

或者,在命令行中输入命令:

    clearrecall        清除recall缓存中的内容

    clearpgm           清除程序编辑器中的内容

    clearlog           清除LOG窗口中的内容

    clearout           清除OUTPUT窗口中的内容

5.  Replacing a Stored File(替换一个已储存的文件)

当你完成程序的调试或调试到一半想要暂停时,你可能希望将你的程序保存下来,以后可以再用。为此,你可以在程序编辑器窗口中选择:

    Fileà Saveas

会出现一个对话框,输入你想要存为的文件名,或直接在对话框中选择已有的文件名,按“OK”即可。若该外部文件已经存在,系统会提示你,是替换(Replace)、附加(Append)还是取消(Cancel),可根据你的实际情况选择。

 

 

五.       练习

1.   打开SAS,熟悉显示管理系统界面。

2.   试验在操作工具栏和命令行两种方式之间切换。

3.   试验在不同的窗口之间切换。

4.   进入帮助窗口,浏览系统的帮助信息。

5.   进入功能键窗口,了解各功能键的作用。

6.   试验在程序编辑器中输入程序。

7.   试验在程序编辑器中用文本编辑命令修改程序。

 

你可能感兴趣的:(统计分析)