1 / 29

第三章 建立数据集 Make the Data Set

第三章 建立数据集 Make the Data Set. 主讲人:李桥. 主要内容. 利用数据步程序建立 SAS 数据集 从程序中直接提供数据 从文本数据文件中读取数据 从已有数据集中复制数据 使用交互式方式建立 SAS 数据集 将其他数据文件转换成 SAS 数据集. 利用数据步程序建立 SAS 数据集. 利用数据步建立数据集的三种方式 从程序中直接提供数据 Data 语句;启动数据步 Input 语句;描述和输入变量 Cards 语句;标志数据开始 从文本数据文件中读取数据 Data 语句;启动数据步 Infile 语句;指明存放数据的文本文件

daryl-lane
Download Presentation

第三章 建立数据集 Make the Data Set

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 建立数据集Make the Data Set 主讲人:李桥

  2. 主要内容 • 利用数据步程序建立SAS数据集 • 从程序中直接提供数据 • 从文本数据文件中读取数据 • 从已有数据集中复制数据 • 使用交互式方式建立SAS数据集 • 将其他数据文件转换成SAS数据集

  3. 利用数据步程序建立SAS数据集 • 利用数据步建立数据集的三种方式 • 从程序中直接提供数据 • Data语句;启动数据步 • Input语句;描述和输入变量 • Cards语句;标志数据开始 • 从文本数据文件中读取数据 • Data 语句;启动数据步 • Infile语句;指明存放数据的文本文件 • Input语句;描述和输入变量 • 从已有数据集中复制数据 • Data 语句;启动数据步 • Set/Merge/Update语句;连接/合并/修改已有数据集

  4. 从程序中直接提供数据,建立SAS数据集 • DATA语句: • 作用:表明数据步的开始,并给出所建数据集的名称。 • 语句格式: DATA < Dataset Name Table > ; • 注:语法符号含义: <…> 表示必选项,用实际内容替换, […] 表示可选项,用实际内容替换, …|…表示二选一, 无括号,表示关键词,直接使用。 • 说明: 数据集名必须以英文字母开始。 数据集名是由半角符号“.”分隔的两部分组成。第1部分称作1级名(libname或库逻辑名),它标识数据集所存贮的位置;第2部分称作2级名,标识特定的数据集。

  5. 几个概念: • 永久数据集/临时数据集: SAS的数据集文件存储在磁盘上,用库逻辑名指定存储位置。如果不明确指定存储位置,SAS默认存储在临时工作区(Work),SAS退出时自动删除,这些数据集称为临时数据集。如:Data a; 如果指定了其他存储位置,如SAS提供的Sasuser库,则退出时不会删除,这些数据集称为永久数据集。如: Data sasuser.a; 也可通过Libname语句指定库逻辑名,自行确定存储位置。 • 注意:一旦建立了永久数据集,在每次使用该数据集名时必须同时指定库逻辑名。

  6. 当前数据集:SAS最后建立的数据集。 过程步中如不加指定,默认对当前数据集进行操作。 例: DATA D1; INPUT A B; CARDS; 3 5 7 9 ; DATA D2; INPUT C D; CARDS; 13 15 17 19 ; PROC PRINT; PROC PRINT DATA=D1; RUN;

  7. Input语句: • 作用:定义变量,并把输入值赋给相应的变量。 • 格式: Input < Variable Table >; • 三种输入数据格式: • 列表输入 • 列输入 • 格式化输入

  8. 列表输入:在Input语句中仅列出变量名;数据仅需用空格分割,不必列对齐。列表输入:在Input语句中仅列出变量名;数据仅需用空格分割,不必列对齐。 • 例: Input name$ sex$ age h w; • 优点:简单易用。 • 缺点: 1)只能按顺序输入变量,不能有选择的输入数据 2)不能输入带空格的数据 3)字符型数据长度受缺省8个字符的限制 • 注意:缺项值用“.”表示。

  9. 列输入:在Input语句中,变量名后用数字指明变量的取值在数据行中所处的列位置;数据要求严格列对齐,并出现在所要求的列上。列输入:在Input语句中,变量名后用数字指明变量的取值在数据行中所处的列位置;数据要求严格列对齐,并出现在所要求的列上。 • 例: Input name $1-10 num 11-18 class 15 grade 11-14; cards; zhang san 20051001 Lisi 20052002 ; • 优点: (1)输入值可以以任何顺序读入,只需标明列号 (2)字符型数据中可包含空格 (3)字符型数据可以最多到200个字符长 (4)可读取全部或部分数值 • 缺点:数据必须严格按照列位置输入。 • 注意:所读取列中只有空格或“.”时,被作为缺项值。

  10. 格式化输入:在Input 语句中,变量名后给出一个输入格式,输入格式用来说明变量的数据类型和字段的宽度;在数据中,数据一般要求列对齐,不必用空格隔开。 • 例: 字符格式:Input name $ 10. ; 数值格式:Input h 4.2 ; 日期格式:mmddyy10. date12. 例: Data a; Input d mmddyy10. d2 date12. ; cards; 10/19/2005 19/Oct/2005 ;

  11. 输出格式: 日期数据在输出时,可用Format语句指定输出格式,以便显示成可以理解的日期格式。 • 注意:输出格式不写数据长度。 • 例: Format d date. ; Format语句可用于数据步中,也可用于过程步中。

  12. 行保持符(续行符):@@ • 使SAS执行完Input语句后不换行,保持在同一数据行上,继续读数据。 • 例: Data a; input x y @@; cards; 3.16 2.9 5.8 3 4.9 4.17 ; proc print; run;

  13. 从文本数据文件中读取数据,建立数据集 • Infile语句: • 作用:指明存放数据的文本文件,Input语句将从这个文件中读数据,程序中不再出现Cards语句和原始数据。该文件中只保存一行行的原始数据(不包括Cards;语句和数据最后的分号)。 • 语句格式: Infile “< Data file path and filename >”; • 说明: Infile语句要放在Input语句前,数据文件路径要与文件实际存储路径一致。

  14. 例: • 数据文件准备:先在编辑环境下写好数据如下: 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;

  15. 从已有数据集中复制数据,建立数据集 • Set语句: • 作用:复制或连接数据集。 • 语句格式: Set < Dataset Name Table >; • 说明:Set语句从一个已存在的数据集中依次读取每一个观测,可进行相应处理,然后依次写入新建的数据集。

  16. 例: 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;

  17. 其他常用语句: • 赋值语句 • 求和语句 • 删除和保留变量语句 • Length语句 • Label语句 • Format语句 • 注释语句

  18. 赋值语句:< Variable > = < Expression >; • 求和语句:< Accumulator Variable> + < Variable >; • 说明;累加和变量先置0,然后对欲求和变量的每个观测的值依次累加到累加和变量上,最后得到该变量各个观测值的累加和。 • 例: DATA A; INPUT X Y @@; S+X; CARDS; 3 5 7 9 20 21 ; PROC PRINT; RUN;

  19. 删除和保留变量语句: • 作用:在建立数据集时,将不需要的变量删除,最终数据集中只出现要保留的变量。 • 语句格式: Drop < Variable Table >; 删除变量 Keep < Variable Table >; 保留变量 • 说明:虽然Drop语句指明的变量不写入建立的数据集中,但是这些变量可在该数据步的所有编程语句中使用 。在 Data步中,Drop语句位于任何地方所产生的效果都相同(必须位于Data语句之后与Cards语句之前)。 Drop和Keep作用相反,不能在数据步中同时使用。

  20. 例: DATA PARTS; INPUT NAME $ S1 S2; TOTAL=S1+S2; DROP S1 S2; CARDS; zhanglin 78 89 wangqiang 95 87 ; Proc print; Run;

  21. 例: DATA PARTS; INPUT NAME $ S1 S2; TOTAL=S1+S2; KEEP NAME TOTAL; CARDS; zhanglin 78 89 wangqiang 95 87 ; Proc print; Run;

  22. 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语句中可以不再用$号作定义。

  23. 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;

  24. 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;

  25. 注释语句:对程序作出解释,或标记某语句不予执行。注释语句:对程序作出解释,或标记某语句不予执行。 • 格式: • 语句开头加一个星号,用分号结束 • 用 /* */ 括起需要注释的程序语句 • 例: * - 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;

  26. 使用交互式方式建立SAS数据集 • 应用VIEWTABLE表编辑器创建数据集 • 操作方法: • 打开Viewtable :【工具】--【表编辑器】菜单 • 确定变量属性:右键单击变量名字段,选择弹出的“Column Attributes”菜单,打开变量属性窗口。确定变量的名称、类型、标号、长度、输入输出格式等属性。 • 输入观测数据。 • 保存数据集: 【文件】--【保存】/ 【另存为】菜单,选择逻辑库名,输入成员名(数据集名),保存数据集。

  27. 编辑修改数据集 • 打开已有数据集: • 在SAS左侧窗格选中“SAS资源管理器”窗格,选中“逻辑库”文件夹,双击打开。(如找不到“逻辑库”文件夹,用菜单命令【查看】--【向上一级】) • 双击打开所需查看的逻辑库:Sasuser或Work,找到所需的数据集,双击图标打开Viewtable编辑器。

  28. 编辑数据集: • 数据集的编辑只能对观测进行添加、删除、修改,不能增删修改变量。 • 利用编辑工具栏按钮 / 编辑菜单进行编辑操作。 • 编辑方法: • 进入编辑模式:按“编辑”按钮或选择【编辑】--【编辑模式】菜单 • 添加新行:选择【编辑】--【添加行】,输入数据后选择【编辑】--【提交新行】。或采用“添加行”和“确认新建行”工具按钮。 • 保存修改:【文件】--【保存】菜单。

  29. 将其他数据文件转换成SAS数据集 • SAS支持将其他数据文件如:Excel,Access,dBase,文本文件等转换成SAS数据集。 • 转换方法:通过菜单:【文件】 → 【导入数据】,按向导逐步操作。

More Related