??? SAS???? Basic Programming of SAS - PowerPoint - PowerPoint

Shared by: v84g8v
Categories
Tags
-
Stats
views:
11
posted:
6/25/2012
language:
Chinese
pages:
29
Document Sample
scope of work template
							第三章 建立数据集
Make the Data Set

    主讲人:李桥
           主要内容
   利用数据步程序建立SAS数据集
     从程序中直接提供数据
     从文本数据文件中读取数据

     从已有数据集中复制数据

   使用交互式方式建立SAS数据集
   将其他数据文件转换成SAS数据集
    利用数据步程序建立SAS数据集
   利用数据步建立数据集的三种方式
       从程序中直接提供数据
           Data语句;启动数据步
           Input语句;描述和输入变量
           Cards语句;标志数据开始
       从文本数据文件中读取数据
           Data 语句;启动数据步
           Infile语句;指明存放数据的文本文件
           Input语句;描述和输入变量
       从已有数据集中复制数据
           Data 语句;启动数据步
           Set/Merge/Update语句;连接/合并/修改已有数据集
   从程序中直接提供数据,建立SAS数据集
       DATA语句:
           作用:表明数据步的开始,并给出所建数据集的名称。
           语句格式:
            DATA < Dataset Name Table > ;
           注:语法符号含义: <…> 表示必选项,用实际内容替换,
                              […] 表示可选项,用实际内容替换,
                              …|… 表示二选一,
                              无括号,表示关键词,直接使用。
           说明:
                数据集名必须以英文字母开始。
                数据集名是由半角符号“.”分隔的两部分组成。第1部分
            称作1级名(libname或库逻辑名),它标识数据集所存贮的位置;
            第2部分称作2级名,标识特定的数据集。
   几个概念:
     永久数据集/临时数据集:
      SAS的数据集文件存储在磁盘上,用库逻辑名指定存储位
      置。如果不明确指定存储位置,SAS默认存储在临时工作
      区(Work),SAS退出时自动删除,这些数据集称为临时
      数据集。如:Data a;
      如果指定了其他存储位置,如SAS提供的Sasuser库,则退
      出时不会删除,这些数据集称为永久数据集。如:
      Data sasuser.a;
     也可通过Libname语句指定库逻辑名,自行确定存储位置。
           注意:一旦建立了永久数据集,在每次使用该数据集
            名时必须同时指定库逻辑名。
   当前数据集:SAS最后建立的数据集。
    过程步中如不加指定,默认对当前数据集进行操作。
    例:
      DATA D1;
       INPUT A B;
       CARDS;
       35
       79
     ;
     DATA D2;
       INPUT C D;
       CARDS;
       13 15
       17 19
     ;
     PROC PRINT;
     PROC PRINT DATA=D1;
     RUN;
   Input语句:
     作用:定义变量,并把输入值赋给相应的变量。
     格式:

      Input < Variable Table >;
     三种输入数据格式:
           列表输入
           列输入
           格式化输入
   列表输入:在Input语句中仅列出变量名;数据仅需用空
    格分割,不必列对齐。
      例:

       Input name$ sex$ age h w;
      优点:简单易用。

      缺点:

       1)只能按顺序输入变量,不能有选择的输入数据
       2)不能输入带空格的数据
       3)字符型数据长度受缺省8个字符的限制
      注意:缺项值用“.”表示。
   列输入:在Input语句中,变量名后用数字指明变量的取值在数
    据行中所处的列位置;数据要求严格列对齐,并出现在所要求的
    列上。
      例:
         Input name $1-10 num 11-18 class 15 grade 11-14;
         cards;
         zhang san 20051001
         Lisi      20052002
         ;
        优点:
         (1)输入值可以以任何顺序读入,只需标明列号
         (2)字符型数据中可包含空格
         (3)字符型数据可以最多到200个字符长
         (4)可读取全部或部分数值
        缺点:数据必须严格按照列位置输入。
        注意:所读取列中只有空格或“.”时,被作为缺项值。
   格式化输入:在Input 语句中,变量名后给出一个输入格
    式,输入格式用来说明变量的数据类型和字段的宽度;在
    数据中,数据一般要求列对齐,不必用空格隔开。
      例:
       字符格式:Input name $ 10. ;
       数值格式:Input h 4.2 ;
       日期格式:mmddyy10. date12.
       例:
       Data a;
       Input d mmddyy10. d2 date12. ;
       cards;
       10/19/2005 19/Oct/2005
       ;
   输出格式:
    日期数据在输出时,可用Format语句指定输出格式,
    以便显示成可以理解的日期格式。
   注意:输出格式不写数据长度。
   例:
    Format d date. ;
    Format语句可用于数据步中,也可用于过程步中。
 行保持符(续行符):@@
 使SAS执行完Input语句后不换行,保持在同一数据
  行上,继续读数据。
       例:
        Data a;
        input x y @@;
        cards;
        3.16 2.9 5.8 3 4.9 4.17
        ;
        proc print;
        run;
   从文本数据文件中读取数据,建立数据集
       Infile语句:
         作用:指明存放数据的文本文件,Input语句将从这
          个文件中读数据,程序中不再出现Cards语句和原始
          数据。该文件中只保存一行行的原始数据(不包括
          Cards;语句和数据最后的分号)。
         语句格式:
          Infile “< Data file path and filename >”;
         说明:
          Infile语句要放在Input语句前,数据文件路径要与
          文件实际存储路径一致。
   例:
     数据文件准备:先在编辑环境下写好数据如下:
    101 zhang M 1.80 80
    102 wang F 1.65 50
    然后保存在相应路径下,如:C:\mydata.sas
     编程:清除编辑窗口,输入以下程序:

    Data a;
    Infile “c:\mydata.sas”;
    Input num name$ sex$ h w;
    Proc print;
    Run;
   从已有数据集中复制数据,建立数据集
       Set语句:
         作用:复制或连接数据集。
         语句格式:

            Set < Dataset Name Table >;
         说明:Set语句从一个已存在的数据集中依次读取每
          一个观测,可进行相应处理,然后依次写入新建的
          数据集。
 例:
DATA SCORE1;
INPUT NUM S1-S3;
CARDS;
1001 78 89 92
1002 87 92 97
1003 64 74 88
;
DATA TOT;
SET SCORE1;
TOTAL=SUM(OF S1-S3);
PROC PRINT;
RUN;
   其他常用语句:
     赋值语句
     求和语句

     删除和保留变量语句

     Length语句

     Label语句

     Format语句

     注释语句
   赋值语句:< Variable > = < Expression >;
   求和语句:< Accumulator Variable > + < Variable >;
        说明;累加和变量先置0,然后对欲求和变量的每个观测的值
         依次累加到累加和变量上,最后得到该变量各个观测值的累加
         和。
        例:
         DATA A;
         INPUT X Y @@;
           S+X;
           CARDS;
           3 5 7 9 20 21
           ;
         PROC PRINT;
         RUN;
   删除和保留变量语句:
     作用:在建立数据集时,将不需要的变量删除,最
      终数据集中只出现要保留的变量。
     语句格式:
        Drop < Variable Table >;   删除变量
        Keep < Variable Table >;   保留变量
       说明:虽然Drop语句指明的变量不写入建立的数据
        集中,但是这些变量可在该数据步的所有编程语句
        中使用 。在 Data步中,Drop语句位于任何地方所
        产生的效果都相同(必须位于Data语句之后与Cards
        语句之前)。
        Drop和Keep作用相反,不能在数据步中同时使用。
   例:
     DATA PARTS;
    INPUT NAME $ S1 S2;
    TOTAL=S1+S2;
    DROP S1 S2;
    CARDS;
    zhanglin 78 89
    wangqiang 95 87
    ;
    Proc print;
    Run;
   例:
     DATA PARTS;
    INPUT NAME $ S1 S2;
    TOTAL=S1+S2;
    KEEP NAME TOTAL;
    CARDS;
    zhanglin 78 89
    wangqiang 95 87
    ;
    Proc print;
    Run;
   Length语句:指明字符变量长度。
       语句格式:Length < Variable Name $> < Value >;
       例:
          DATA A;
          LENGTH NAME $ 13;
          INPUT NAME SEX $ H W;
          CARDS;
          ZhangZhihui F 1.70 52
          ZhaoChangtai M 1.73 55
          ;
       注意: 由于NAME变量已在LENGTH语句中定义为字符型量,
        故INPUT语句中可以不再用$号作定义。
   Label 语句
       作用:当数据集输出(打印)时,用标号字符代替变量名,使
        对变量名称的描述更加详细。
       语句格式: Label < Variable Name > = < Label >;
       注意:为使标号有效输出,需在Print过程语句中加Label选项。
       例:
         Data a;
         Input num $ sex $ h w;
         Label h=身高 w=体重;
         Cards;
         101 M 1.72 61
         ;
         Proc print Label;
         Run;
   Format语句:
       作用:指定变量的输出格式。
       语句格式:Format < Variable > < Output Format >;
       常用日期变量输出格式:
        mmddyy. date. worddate.
       例:
         Data emplo;
         Input name $ T date9.;
         Format T worddate. ;
         Cards;
         Zhongli 15Jan2005
         Liuwei 03Mar2005
         ;
         Proc print;
         Run;
   注释语句:对程序作出解释,或标记某语句不予执行。
       格式:
           语句开头加一个星号,用分号结束
           用 /* */ 括起需要注释的程序语句
       例:
        * - Example - ;
        Data a;
        Label n=name h=height;
        /* name 和 height 分别是变量 n和h 的标号 */
        Input num n$ h;
        Cards;
        1001 zhangsan 1.75
        1002 lisi 1.82
        ;
        Proc print label;
        Run;
使用交互式方式建立SAS数据集
   应用VIEWTABLE表编辑器创建数据集
       操作方法:
         打开Viewtable :【工具】--【表编辑器】菜单
         确定变量属性:右键单击变量名字段,选择弹出的
          “Column Attributes”菜单,打开变量属性窗口。确
          定变量的名称、类型、标号、长度、输入输出格式
          等属性。
         输入观测数据。
         保存数据集: 【文件】--【保存】/ 【另存为】菜
          单,选择逻辑库名,输入成员名(数据集名),保
          存数据集。
   编辑修改数据集
       打开已有数据集:
         在SAS左侧窗格选中“SAS资源管理器”窗格,选中
          “逻辑库”文件夹,双击打开。(如找不到“逻辑
          库”文件夹,用菜单命令【查看】--【向上一级】)
         双击打开所需查看的逻辑库:Sasuser或Work,找到
          所需的数据集,双击图标打开Viewtable编辑器。
   编辑数据集:
     数据集的编辑只能对观测进行添加、删除、修改,
      不能增删修改变量。
     利用编辑工具栏按钮 / 编辑菜单进行编辑操作。

     编辑方法:
           进入编辑模式:按“编辑”按钮或选择【编辑】--【编辑
            模式】菜单
           添加新行:选择【编辑】--【添加行】,输入数据后选择
            【编辑】--【提交新行】。或采用“添加行”和“确认新
            建行”工具按钮。
           保存修改:【文件】--【保存】菜单。
    将其他数据文件转换成SAS数据集
   SAS支持将其他数据文件如:Excel,
    Access,dBase,文本文件等转换成SAS数
    据集。
   转换方法:通过菜单:【文件】 → 【导入
    数据】,按向导逐步操作。

						
Related docs
Other docs by v84g8v
Health Care Expense Form Fill ENGLISH V2
Views: 22  |  Downloads: 0
BIDANG KOKURIKULUM
Views: 154  |  Downloads: 0
IN THE HIGH COURT OF SOUTH AFRICA - DOC 3
Views: 4  |  Downloads: 0
sinteza 27 03 02 04
Views: 7  |  Downloads: 0
Prevenirea incendiilor la fondul forestier
Views: 15  |  Downloads: 0
Notes: Introduction to Medical Terminology
Views: 12  |  Downloads: 0
0marianus sceneta pacala
Views: 125  |  Downloads: 0