从本质上讲, SAS 是一种完善的第四代计算机语言。因此要真正掌握它,我们仍然要抛开其华丽的外表,从学习它的核心―― SAS 程序开始。 SAS 看成一个计算能力极强的统计学白痴(之所以这样说,是因为它计算能力虽然极强,却只能帮你计算而不能提出自己的实验设计方案或
网站地图本站论坛
高级搜索收藏本站
  • SAS程序初步

  • 点击:    作者:   来源: 日期:2007-12-04    本站论坛

§

3.2 SAS程序的数据步

3.2.1 预备知识

SAS程序的语句从上一个语句结束处开始,以一个分号结束,可占多行。

3.2.2 数据步

  • DATA语句 它的主要功能是:SAS数据集。DATA语句的一般形式如下:

    DATA

    数据集名;
    • INFILE语句 用于从外部文件读入数据,必须出现在INPUT语句之前。它的主要功能是:

      INFILE语句的格式如下:

      INFILE

      外部文件的所在位置及名称 选项;
      • CARDS语句 用于直接输入数据,标志着数据块的开始。格式如下:

        CARDS;

         数据块

        • INPUT语句 用于向系统表明如何读入每一条记录。它的主要功能有:

          INPUT语句的格式如下:

          INPUT

          变量名 [变量类型 起止列数]...;

          方括号表示其中的内容为可选,如果不输入,系统会以默认值代替。

          3.2.3 数据的两种输入方式

          上面我们学到了

          【直接输入方式】

          实际上我们在第一章已经用到了直接输入方式,仍以那个程序为例,其中的数据步如下:

          INFILE语句和CARDS语句,它们分别对应了两种数据输入的方式:

          data temp;

          命名将要建立的数据集为work.temp

          input x y@@;

          要输入的变量为xy,并且连续输入

          cards;

          直接输入数据,数据块开始

          34 56 78 90 35 67 89 10 23 65 77 45

          数据块

          ;

          数据块结束

          变量y后面的

          @@表示数据可以在一行里连续读入,SAS默认按列来分隔变量,可是这里只有两个变量,输成两列数据太长,因此加上两个@@SAS见到这个符号,在按变量名依次读取完数据后,不是跳到下一行,而是继续在该行读数据,直至本行结束或到达分号为止。

           如果你对这段叙述无法理解,请去掉两个@@,重新运行一遍程序,看看LOG视窗中的提示都有些什么变化。

          【外部文件读入方式】

          如果刚才的数据已经事先输好,在硬盘上的“

          C:\USER”文件夹内存为temp.dat文件,该文件内容如下(纯文本):

          34 56 78 90 35 67 89 10 23 65 77 45

          则我们可以输入程序如下:

          data temp; 命名将要建立的数据集为work.temp
          Infile c:\user\temp.dat; 指定外部数据文本文件名
          input x y@@;

          要输入的变量为xy,并且连续输入

          Run; 数据步结束,以上语句可以执行了

           数据步以DATA语句开始,那么在哪里结束?在遇到run语句或另一个数据步/程序步时就结束了。

           为什么程序的最后都要加一句run?这个问题还不太好解释,每一个程序应至少在最后有一个run语句,表明前面的所有语句可以提交运行了,如果没有这一句,SAS会以为你后面还有语句要输入,从而将一些非立即执行的语句保留在编译缓冲区中,等待后续命令发出后一起执行,这有时会把事情弄得很糟。出于减少麻烦的需要,建议大家养成在每一个数据步或程序步后都写上一句run的习惯。

           Submit命令和run语句有什么区别?这是初学者最爱问的一个问题,也同样是一个难以回答的问题。简单地讲,run是程序语句,可在程序中多次出现,它表示前面的程序段已经全部写完,可以作为一个或几个整体提交运行了,而Submit则是SAS命令,只在最后程序运行的时候发出,表示将程序正式提交运行。如果你还不明白,那么我还是来给你打个比方,run语句是你对SAS说“我想让您做的就是这些了”,而Submit命令就是对SAS说“现在开始为我做这些事,好吗”,明白了吗?

          读入其他格式的数据文件

          除了以上的两种通过数据步创建数据集的方法,SAS还提供了一些其他的方式可以用来读入其他格式的数据文件。6.11版本以上的SAS可以利用FILE菜单上的import命令将其他格式的数据文件导入SAS系统,创建SAS自己的数据集。可以导入的数据文件格式有:dBase数据库,EXCEL工作表,LOTUS的数据库,纯文本的数据文件等。

          导入的操作完全是对话式的,界面友好,简便实用。以下简单叙述导入的步骤,假如例1.1的数据输成一个dBASEIII数据库文件temp.dbf, 已经存放在"c:\user"下,要导入成数据集work.li1_1。选择FILE菜单上的import,弹出一个对话框,按照向导的提示进行下去。 

           

          1. 选择导入的数据格式,从下拉式菜单上选择DBF格式,单击NEXT按钮。 

          2. 给出数据文件的位置和文件名,在对话框中键入C:\USER\temp.DBF,或点BROWSE直接从上面选择文件,选好后单击NEXT按钮。 

          3. 选择导入的目的地,即指定要创建的数据集的名字和存放的数据库名,先在左面的对话框选择数据库名WORK(临时库),在右面的对话框键入数据集的名字li1_1,此名可任意起,少于8个字符,选择完后,单击FINISH按钮,就完成了此次操作。

           这时已经建好了一个数据集,名为WORK.li1_1,与我们前面建立的数据集完全一致。

          上一篇:SAS/ASSIST视窗简介   下一篇:统计图

          共5页: 上一页 [1] [2] 3 [4] [5] 下一页

推荐文章
 
相关文章
推荐专题
 

↑返回顶部   打印本页   关闭窗口↓  
 本站申明 联系我们 网站地图
Copyright© 试验方案

Powered by DedeCms email:htmyth#yahoo.com.cn QQ:386836509

Optimized to 1024x768 to Firefox,Opera and MS-IE6