设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1284|回复: 0

SAS软件应用入门

[复制链接]

16

主题

176

金钱

267

积分

入门用户

发表于 2019-7-3 13:17:31 | 显示全部楼层 |阅读模式

       第1节 SAS软件简介

  SAS是Statistical Analysis System(统计分析系统)的缩写, 美国于1966年开始研制SAS,并且一直在不断更新版本。本书所使用的是PC/SAS 6.04版。
  SAS软件是模块式结构,最常用的3个模块分别是SAS/BASE(基础)、SAS/STAT(统计)和SAS/GRAPH(图形), 还有SAS/ETS(预测)、SAS/IML(矩阵运算)和SAS/QC(质量控制)等约20个模块。这些模块可单独使用、也可互相配合起来使用。
  本书将利用前3个模块作为实现统计计算和绘图的工具,讲述统计理论、统计软件及其结合应用的方法和技巧,以期达到简单明了、实用方便、相得益彰之效果。

  第2节 应用SAS的捷径

  每个SAS模块都由多个可执行的文件组成,它们被称为SAS过程(SAS PROCEDURE), 用户在调用SAS过程仅具体问题之前,必须用SAS语言编写一段程序, 通过它建立起用户与SAS系统之间的联系,我们称这段程序为SAS引导程序,简称为SAS程序(SAS PROGRAM)。应用SAS的关键就是要编写出符合各种情况的SAS程序。实现这一目的的前提条件是用户对SAS语言有较详细的了解,这对新用户来说,困难颇大。本书为广大用户提供了一条应用SAS的捷径,即“了解几个基本概念、掌握几组重要命令、调用并略加修改书中已编写好的各种SAS程序”。 许多人的实践结果证明:走这条捷径,使SAS软件的应用化繁为简、实用方便、省时省力、事半功倍。

  第3节 使用SAS必需了解的几个基本概念

1. SAS程序的结构
  最简单的SAS程序由一个SAS数据步(SAS DATA STEP)和一个SAS过程步(SAS PROCEDURESTEP)两部分组成。数据步以DATA语句开头, 其作用是建立SAS数据集(SAS DATA SET)。具体地说,就是建立起变量与数据之间的联系,使数据能方便地被SAS过程所利用;过程步以PROC语句开头,其作用是激活SAS过程。通常, 一个SAS程序中可包含多个SAS数据步, 也可包含多个SAS过程步。每一个SAS语句用一个分号结束,一行中可写多个SAS语句。
  下面就如何实现多元线性回归分析为例,展示SAS程序的结构。
  MREG1.PRG(外部文件名)          MREG2.PRG(外部文件名)
  数据步的第1种书写形式:         数据步的第2种书写形式:
  DATA abc;                DATA abc;
   INPUT x1-x4 y;             INFILE '盘名:文件名';
   CARDS;                 INPUT x1-x4 y;
   7 26 6 60 78.5              用这种形式书写数据步的
   1 29 15 52 74.3            前提是: 将左边的13行5列数
  11 56 8 20 104.3            据事先用文件名存入软盘(或
  11 31 8 47 87.6            硬盘)上, 然后, 用INFILE语
   7 52 6 33 95.9            句调用。如: 软盘插入A驱动
  11 55 9 22 109.2            器中, 文件名为w.dat, 则
   3 71 17 6 102.7            INFILE语句的具体写法是:
   1 31 22 44 72.5            INFILE 'a:w.dat';
   2 54 18 22 93.1              这种形式的优点是数据
  21 47 4 26 115.9            步简炼, 数据可反复被调用。
   1 40 23 34 83.8              下面是调用reg过程的过程步:
  11 66 9 12 113.3            PROC REG;
  10 68 8 12 109.4            MODEL y=x1-x4;
  ;                    RUN;
  过程步与右边相同。
  [说明] MREG1.PRG和MREG2.PRG都是SAS程序的外部文件名,由用户定义, 仅在存文件、调文件时有用,运行SAS时不应将它写出;
  DATA是数据步开头的标志, 其后的abc(如果在程序中不引用此名,也可省略不写)为即将创建的SAS数据集名,由用户定义,最多可含8个字符(注意:数据集名通常不含“.”);
  INPUT语句定义了5个变量名,每执行一次,读取全部数据中的一行,依次赋给变量x1-x4和y;
  CARDS语句标志着其后为数据;如果数据中含分号,需将CARDS改成CARDS4,并用4个连续的分号“;;;;”作为数据步的结束标志;
  仅有“;”的这一行是一空语句行,标志着数据步的结束;
  PROC是过程步开头的标志,其后的REG为实现多元回归分析的过程名;
  MODEL语句要求建立以y为因变量、x1-x4 为自变量的多元线性回归方程;
  RUN语句将通知SAS系统执行它前面的每一个SAS语句。

2. SAS程序的运行方式
  设SAS软件已被正确地安装在硬盘C上,子目录名为SAS;又设可完成某项任务的一个SAS程序为W.PRG,事先存在软盘上,将盘插入驱动器A中,则常用的运行方法有:
(1)非交互方式
  C>cd sas(回车)      C:\SAS>sas a:w.prg(回车)
  稍等片刻,运行情况记录自动存在C\SAS\W.LOG中,如果SAS程序运行正常, 则运行结果自动存在C\SAS\W.LST中。运行结束后,可按如下方式操作:
  C:\SAS>dir w.*(回车)
  如果W.LOG和W.LST2个文件都存在,可用用户熟悉的办法对W.LST文件进行编辑、输出结果;如果只有W.LOG文件,应该查看该文件,了解SAS程序出错的原因,修改后再重新运行。
(2)交互地显示管理方式(简称SAS DMS)
  C>cd sas(回车)      C:\SAS>sas(回车)
  进入SAS DMS后的状态是屏幕上出现了3个基本窗口,从上到下依次为OUTPUT(输出窗口)、LOG(记录窗口)和PROGRAM EDITOR(缩写为PGM, 程序编辑窗口)。此后的一切操作几乎都是在窗口内完成,SAS系统共设置了17个窗口,其它14个窗口称为特定的窗口。如:HELP(帮助窗口)、KEYS(键窗口)等。每一个窗口的入口处写着“COMMAND===>”,该行称为命令行,即发送SAS命令的地方。发命令之前,应将光标移到该行“>”号之后并且至少留一空格,然后,键入某个SAS命令,回车后生效。
  SAS程序可直接从PGM窗口有行号的区域内逐行通过键盘输入(注意: 各行号后必须留1个空格,否则,输不进去!);也可从PGM窗口的命令行上用INCLUDE(缩写为INC)命令将事先存在软盘(或硬盘)上的SAS程序调入PGM窗口。当此窗口内有了SAS程序后, 只需按一下F10功能键就可运行SAS。运行情况记录立即显示在LOG窗口内,如果SAS程序有错误, 则用红色字体给出错误信息,并停止执行。一旦有了运行结果,立即显示在OUTPUT窗口内。
  值得提醒的是:显示在OUTPUT窗口内的内容不适合直接送到打印机上去,因为各页均有标题,一个标题下的内容无论多么少,都将占一页,浪费打印纸。最好把它移到PGM窗口, 经过编辑后再输出。具体移动方法后面另作介绍。
(3)填空方式
  一旦进入了SAS DMS状态后,可先在PGM窗口输入SAS程序的数据步,并以RUN语句结束。当按F10键后,就建立了一个临时的SAS数据集。将光标移到PGM窗口的命令行上, 键入MENU后回车,便进入了“SAS过程菜单系统”窗口,在窗口的“select option ===>”行上键入过程名,回车后显示关于该过程的一张表,按要求填完这张表,按F10键就自动生成了过程步,同时发送给SAS系统去执行。如果所填的项目符合要求,其计算结果就显示在OUTPUT窗口内;反之,可在LOG窗口内看到红色的出错信息。也可在数据步语句之后使用DM语句直接进入MENU窗口,并调用某个过程,其语句的写法是M 'menu; 过程名'; 。

3. 上述3种SAS运行方式的比较
  第1种方式比第2种方式节省机器内存, 当某些SAS程序用第2种方式运行出现内存不够现象时,改用第1种方式往往有效;第2种方式十分直观,发现和修改错误都非常方便; 第3种方式很难保证每个空格都能填写正确,往往需反复填写几遍才能成功,仅当要写的过程步语句和选择项都很多时,采取这种方式产生过程步才会觉得比较省力。

4. 怎样向SAS系统寻求帮助
  一旦进入了SAS DMS状态,除了正在运行SAS程序的那段时间外,可随时按F1键显示有关帮助信息,也可随时按F2键了解SAS为用户定义了哪些功能键。这两个键提供的信息相当于简明的SAS使用梳。
(1)慢速提取帮助信息
  如果光标在3个基本窗口内时,按F1键(或在某窗口的命令行上键入HELP并回车)进入HELP窗口,显示屏上出现SAS/BASE中的全部过程名、其他SAS模块名以及其他有关的信息。然后可在HELP窗口的选择行上键入需进一步了解的内容(即过程名、模块名、特定内容的编号)并回车,将显示该内容的详细解释信息,还可一层层地往下查询,直到无可奉告时为止。
  如果光标是在某个特定的窗口内时,按F1键,仅显示关于如何使用该窗口的有关信息。
  采取这种逐项提取帮助信息的方式后,仍需逐级退出, 最后回到3个基本窗口。退出的方法是在HELP窗口的命令行上逐次使用“CANCEL(简写成CAN)”命令并回车。
(2)快速提取帮助信息
  如果用户已经知道需查寻的信息所在的确切位置,当光标在3个基本窗口内时, 用下面的方法可使查询工作一步到位。在窗口的命令行上键入命令并回车,即可。如:
  命   令          查 询 内 容
━━━━━━━━━━━━  ━━━━━━━━━━━━━━━
HELP BASE          SAS/BASE中的全部过程名
HELP STAT          SAS/STAT中的全部过程名
HELP GRAPH         SAS/GRAPH中的全部过程名
HELP FREQ          FREQ过程的解释信息和使用方法
HELP ANOVA         ANOVA过程的解释信息和使用方法
HELP 21           SAS数据步语句
HELP 22           SAS数据书写格式和解释信息
HELP 23           SAS函数和解释信息
HELP 24           SAS全程语句
HELP 25           SAS过程步语句
HELP 31           显示管理帮助系统(SAS DMS)菜单
HELP 31 1(~6)之一     SAS DMS中6组命令表之一的信息
HELP 32(~48)之一      SAS系统中17个窗口之一的功能
━━━━━━━━━━━━  ━━━━━━━━━━━━━━━
  查询结束后,只需在HELP窗口的命令行上使用一次“CAN”命令,就可快速恢复3个基本窗口。
(3)直接利用键窗口了解有关功能键的信息
  在SAS DMS状态下,按F2功能键,便进入了键窗口。此窗口的作用是显示SAS系统为用户定义的全部功能键(共100个,单一键12个,组合键88个)以及部分功能键的功能。如:F1 HELP,代表F1键的功能是进入帮助窗口。用户最常用的功能键及其功能如下:
  F1  HELP  (进入帮助窗口)      F2  KEYS  (进入功能键窗口)
  F3  LOG  (进入记录窗口)      F4  OUTPUT (进入输出窗口)
  F6  PGM  (进入程序编辑窗口)    F7  ZOOM  (放大或缩小窗口面积)
  F9  RECALL (招回运行过的SAS程序)
  F10 ZOOM OFF; SUBMIT(当PGM窗口内有SAS程序时,先缩小已扩大的窗口的面积,然后,发送命令。
(4)巧用键窗口━━对功能键的功能进行修改或重新定义
  键窗口左边的功能键(冠以单词KEY)不可修改或重新定义, 但其右边的功能描述(冠以单词DESCRIPTION)是可以修改或重新定义的。这里所说的“功能”包括两面的内容,其一,所有合法的SAS命令; 其二,文件中常用的字符串。其区别在于字符串前必须放1个字符“~”,如:
  F5 NEXT(光标跳到下一个窗口),可修改成:F5 CLEAR(清屏);
  SHF F6其功能待定,现将它定义为调用菜单窗口的功能键:SHF F6 MENU,也可将其定义为一个常用的字符串:SHF F6 ~I LIKE SAS.
  值得注意的是: SAS命令的第1个字符或字符串前的“~”必须与DESCRIPTION中的D写在同一列上。
  欲保留修改或重新定义的功能,可在键窗口的命令行上发命令END或SAVE。
  END 使修改后的功能键设置集合存盘,并移走键窗口,恢复3个基本窗口;
  SAVE [文件名] 将修改后的内容用其后的文件名存盘,不移走窗口。也就是说, 可用不同的文件名去存多套功能键的设置集合,需要哪一套,就调用哪一套;
  COPY [文件名] 调用由SAVE命令存入的功能键设置集合;
  欲取消键窗口内修改的内容,保留原先的功能键设置集合,其命令为:CANCEL(或CAN)。

  第4节 使用SAS必须掌握的几组重要命令

  SAS命令很多,这里仅给出使用SAS必须掌握的几组重要的命令,详细内容请从本书附录中查找。命令后中括号里的内容为可选项,使用时中括号不应写出。
1. 显示管理全程命令(可在任一窗口的命令行上使用,回车后生效)
(1)窗口管理命令(可用HELP 31 2命令显示)
  BYE(或ENDSAS) 彻底退出SAS DMS,回到SAS子目录状态;
  END      保留特定窗口内修改过的内容并退出该窗口;
  CANCEL     取消特定窗口内修改过的内容并退出该窗口;
X       保留窗口内信息,临时退出SAS DMS,回到DOS状态,可执行各种DOS命令;
EXIT      在使用X命令后的DOS状态下,快速返回SAS DMS。
(2)翻卷命令(可用HELP 31 4命令显示)
  TOP(到顶)  BOTTOM(或BOT)(到底)  RIGHT MAX(右移最大量)
  N (使从上到下的第N行内容成为命令行下的第1行)
(3)标记、截取和连接命令(可用HELP 31 6命令显示)
①标记命令
  MARK(标记若干行);        MARK CHAR(标记字符串);
  MARK BLOCK(标记一矩形区域);   UNMARK(取消标记)。
  前3个标记命令的操作方法:先在命令行上键入命令,再把光标移至欲标记内容之首,按回车键;再在欲标记内容之尾,重复操作1次。若利用相应的功能键,则可分别将光标移至欲标记内容之首、尾各按1次功能键即可。UNMARK命令只需执行一次即可。
②截取命令
  STORE [BUFFER=文件名] ;     CUT [BUFFER=文件名]。
  把标记后的内容直接存入缓冲区或用给定的文件名存入缓冲区。如果省略中括号里的内容,则后一次存入的内容就替代了前一次存入的内容。
  STORE与CUT的区别是:用STORE时,标记后的内容仍保留在原处;用CUT时,标记后的内容从原处被切除,CUT不能在OUTPUT窗口上使用。
③连接命令
  PASTE [BUFFER=文件名]
  把用STORE或CUT命令存入缓冲区的内容调到光标所在的窗口里来。操作方法:先在命令行上输入命令,光标下移到有行号的编辑区域内,再按回车键。

2. 文本编辑命令之一(可用HELP 31 6命令显示)
  本组命令在命令行上使用,回车后生效,其中最常用的命令有:
  AUTOWRAP ON      使一行中超过136个字符部分自动移到下行;否则,将被删除;
  CLEAR         清屏;
  FILE 'PRN:'      把窗口内的文件送到打印机上去;
  FILE '盘名:文件名'   文件存入指定的盘;
  INCLUDE '盘名:文件名' 把指定的盘上某文件调入窗口。

3. 文本编辑命令之二(可用HELP 31 6 34和HELP 31 6 35命令显示)
  本组命令只在PGM窗口内行号上使用,其中一部分可单独使用, 另一部分需与操作定位命令配合起来使用。如果一个完整的命令需通过2行或3行上发送命令才能完成, 则中间过程都要靠移动光标键来实现,最后按一次回车键使之生效。
(1)单行命令
①只在一行上使用的一般命令(回车后生效)
  CL   把当前行上的字符由大写改成小写;
  CU   把当前行上的字符由小写改成大写;
  D[N]  删除自当前行起的N行,D或D1都表示只删除当前行,其他命令中N的用法与此相似;
  I[N]  在当前行之后插入N个空行;
  IB[N] 在当前行之前插入N个空行;
  JC[N] 以第N列为中点, 使当前行内容置中;
  JL[N] 自左至右的第N列为当前行的第1个字符的位置;
  JR[N] 自左至右的第N列为当前行的最后1个字符的位置;
  R[N]  使当前行的内容在该行之后复制N行;
  >[N]  使当前行内容右移N个字符;
  <[N]  使当前行内容左移N个字符;
  TF[N] 自当前行起, 使相邻的所有行中的每一行上保留N个字符( 含字符间的空格);
  TS[N] 将当前行分裂成两行,并使这两行之间留出N个空行。操作方法是: 先键入命令,      光标右移至欲分裂处,再按回车键。
②只在一行上使用的特殊命令(回车后生效)
  COLS  在当前行上显示1个水平标尺;
  MASK  标记当前行的内容,在所需之处可用I、IB命令反复获得该行的内容;
  TA[N] 在当前行上设置跳格标尺,其标志是每隔N个字符处有一个T字符;
  D   在键入上述3个特殊命令的行号上,键入D命令,则可取消特殊命令。
(2)2行上使用的块命令(操作方法:第2次键入命令后再按回车键)
  功能:使键入命令的两行及其中间的所有行(简称为“文件块”)上的内容作同样的操作。
  CCL  使文件块的字符由大写改成小写;
  CCU  使文件块的字符由小写改成大写;
  DD   删除文件块的全部内容;
  JJC[N] 以第N列为中点, 使文件块的内容置中;
  JJL[N] 自左至右的第N列为文件块的第1个字符的位置;
  JJR[N] 自左至右的第N列为文件块的最后1个字符的位置;
  RR[N] 使文件块的内容在该行之后复制N次;
  >>[N] 使文件块的内容右移N个字符;
  <<[N] 使文件块的内容左移N个字符。
(3)操作定位命令
  A   即AFTER之意,操作的结果将出现在键入A的那一行之后;
  B   即BEFORE之意,操作的结果将出现在键入B的那一行之前;
  O   即OVERLAP之意,操作的结果将重叠于键入O的那一行之上。
(4)与操作定位命令配合使用的命令(最后一步按回车键)
①只在一行上使用的单行命令
  C[N]  把自当前行起的N行内容拷贝到由A、B命令指定的位置上去;
  M[N]  把自当前行起的N行内容移到由操作定位命令指定位置上去。
②在2行上使用的块命令
  CC[N] 把文件块的内容拷贝到由A、B命令指定的位置上去;
  MM[N] 把文件块的内容移到由操作定位命令指定的位置上去。

  第5节 实际运行SAS的步骤

  本节的目的是通过用SAS仅一个具体问题,展示运行SAS的一般步骤,读者可举一反三、
如法炮制。设SAS软件安装在硬盘C上,其子目录名为SAS。
  第1步 开机,其先后顺序为“打印机、显示器、主机”,此时,机器所处的状态是: C>;
  第2步 在“C>”状态下,进入SAS DMS状态,其方法是(小写字母由用户输入,大写也可):      C>cd sas(回车); 此时的状态是:“C:\SAS>”; C:\SAS>sas(回车)
  第3步 此时,机器已进入SAS DMS状态,屏幕上出现了3个基本窗口,设本章第3节中的SAS程序MREG1.PRG和MREG2.PRG已存在软盘上,现将这张盘插入A驱动器内,并将光标移到PGM窗口的命令行上,键入如下的命令:inc 'a:mreg1.prg'(回车), 此时,已将名为MREG1.PRG的SAS程序调入了PGM窗口;
  第4步 根据用户的具体资料修改这段现成的SAS程序,假定用户的资料中含有8个自变量x1-x8、1个因变量y,共50行(每行9个数据),称为50个观测(observations),于是,修改方法如下:
  将MREG1.PRG程序中的第2句“INPUT x1-x4 y;”修改成“INPUT x1-x8 y;”, 将光标移到第4行的行号上键入DD,再将光标移到第16行的行号上键入DD并回车, 胀删除了程序中原有的数据;再将光标移到CARDS语句所在的行号上键入I51并回车,就在该行之后插入了51个空行,用户可将50个观测一一输入,其他内容可不修改;
  也可在PGM窗口内先输入50行9列数据并用文件名存在盘上,此时,只需调用并修改MREG2.PRG程序中第2句的文件名以及将第3句中的x4改为x8即可;
  第5步 按F10键,便开始运行SAS程序;
  第6步 如果程序中因分号使用不当或忘写等错误,当程序自动停止执行时, 按F3键进入LOG窗口,细查原因后,按F6键进入PGM窗口,再按F9键招回刚运行过的那段SAS程序进行修改, 然后,从第5步开始重新操作;
  第7步 如果有了运行结果,按F4键进入OUTPUT窗口。最好用下面两种方法之一将结果调到PGM窗口进行编辑后再输出:
  1. 在OUTPUT窗口的命令行上2次使用MARK命令,对输出结果进行标记, 再用STORE命令把标记后的内容存入缓冲区,按F6键进入PGM窗口,在此窗口的命令行上用PASTE命令调出刚存入缓冲区的内容;
  2. 在OUTPUT窗口的命令行上使用命令: FILE '盘名:文件名'(回车),胀把输出结果存到软盘或硬盘上去了,按F6键进入PGM窗口, 在此窗口的命令行上使用命令: INC '盘名:文件名'(回车),这样就把输出结果调入了PGM窗口;
  第8步 在PGM窗口编辑后的内容可直接送到打印机上去, 命令是: FILE 'PRN回车);也可存到盘上去, 命令是: FILE '盘名:文件名'(回车);  如果还要仅其他问题,可重复操作上述第3~8步;
  第9步 关机,其先后顺序为“主机、显示器、打印机”。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表