第三章建立数据集 Make the Data Set 主讲人:李桥
第三章 建立数据集 Make the Data Set 主讲人:李桥
主要内容 利用数据步程序建立SAS数据集 ▣从程序中直接提供数据 ■从文本数据文件中读取数据 ■从已有数据集中复制数据 ■使用交互式方式建立SAS数据集 ■将其他数据文件转换成SAS数据集
主要内容 ◼ 利用数据步程序建立SAS数据集 ◼ 从程序中直接提供数据 ◼ 从文本数据文件中读取数据 ◼ 从已有数据集中复制数据 ◼ 使用交互式方式建立SAS数据集 ◼ 将其他数据文件转换成SAS数据集
利用数据步程序建立SAS数据集 ■利用数据步建立数据集的三种方式 ■从程序中直接提供数据 ■ Data语句;启动数据步 ■ Inputi语句;描述和输入变量 Cards语句;标志数据开始 ■从文本数据文件中读取数据 ■Data语句;启动数据步 Infile语句;指明存放数据的文本文件 ■Inputi语句;描述和输入变量 ■从已有数据集中复制数据 ■Data语句;启动数据步 ■Set/Merge/Update语句; 连接/合并/修改已有数据集
利用数据步程序建立SAS数据集 ◼ 利用数据步建立数据集的三种方式 ◼ 从程序中直接提供数据 ◼ Data语句;启动数据步 ◼ Input语句;描述和输入变量 ◼ Cards语句;标志数据开始 ◼ 从文本数据文件中读取数据 ◼ Data 语句;启动数据步 ◼ Infile语句;指明存放数据的文本文件 ◼ Input语句;描述和输入变量 ◼ 从已有数据集中复制数据 ◼ Data 语句;启动数据步 ◼ Set/Merge/Update语句;连接/合并/修改已有数据集
从程序中直接提供数据,建立SAS数据集 ■ DATA语句: ■作用:表明数据步的开始,并给出所建数据集的名称。 ■ 语句格式: DATA Dataset Name Table > ■ 注:语法符号含义: 表示必选项,用实际内容替换, 【小表示可选项,用实际内容替换, ……表示二选一, 无括号,表示关键词,直接使用。 说明: 数据集名必须以英文字母开始。 数据集名是由半角符号“”分隔的两部分组成。第部分 称作1级名(libnamei或库逻辑名),它标识数据集所存贮的位置; 第2部分称作2级名,标识特定的数据集
◼ 从程序中直接提供数据,建立SAS数据集 ◼ DATA语句: ◼ 作用:表明数据步的开始,并给出所建数据集的名称。 ◼ 语句格式: DATA ; ◼ 注:语法符号含义: 表示必选项,用实际内容替换, […] 表示可选项,用实际内容替换, …|… 表示二选一, 无括号,表示关键词,直接使用。 ◼ 说明: 数据集名必须以英文字母开始。 数据集名是由半角符号“.”分隔的两部分组成。第1部分 称作1级名(libname或库逻辑名),它标识数据集所存贮的位置; 第2部分称作2级名,标识特定的数据集
■几个概念: ■永久数据集/临时数据集: SAS的数据集文件存储在磁盘上,用库逻辑名指定存储位 置。如果不明确指定存储位置,SAS默认存储在临时工作 区(Wok),SAS退出时自动删除,这些数据集称为临时 数据集。如:Data a; 如果指定了其他存储位置,如SAS提供的Sasuser)库,则退 出时不会删除,这些数据集称为永久数据集。如: Data sasuser.a; 也可通过Libname语句指定库逻辑名,自行确定存储位置。 ■ 注意:一旦建立了永久数据集,在每次使用该数据集 名时必须同时指定库逻辑名
◼ 几个概念: ◼ 永久数据集/临时数据集: 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; 1315 1719 PROC PRINT; PROC PRINT DATA=D1; RUN;
◼ 当前数据集: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;
Inputi语句: ■作用:定义变量,并把输入值赋给相应的变量。 ■格式: Input Variable Table > ■三种输入数据格式: ■} 列表输入 列输入 ■格式化输入
◼ Input语句: ◼ 作用:定义变量,并把输入值赋给相应的变量。 ◼ 格式: Input ; ◼ 三种输入数据格式: ◼ 列表输入 ◼ 列输入 ◼ 格式化输入
列表输入:在Input语句中仅列出变量名;数据仅需用空 格分割,不必列对齐。 ■例: Input name$sex$age h w; ·优点:简单易用。 ■缺点: 1)只能按顺序输入变量,不能有选择的输入数据 2)不能输入带空格的数据 3)字符型数据长度受缺省8个字符的限制 ■注意:缺项值用“表示
◼ 列表输入:在Input语句中仅列出变量名;数据仅需用空 格分割,不必列对齐。 ◼ 例: Input name$ sex$ age h w; ◼ 优点:简单易用。 ◼ 缺点: 1)只能按顺序输入变量,不能有选择的输入数据 2)不能输入带空格的数据 3)字符型数据长度受缺省8个字符的限制 ◼ 注意:缺项值用“.”表示
列输入:在Inputi语句中,变量名后用数字指明变量的取值在数 据行中所处的列位置;数据要求严格列对齐,并出现在所要求的 列上。 ■例: 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 $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/200519/Oct/2005
◼ 格式化输入:在Input 语句中,变量名后给出一个输入格 式,输入格式用来说明变量的数据类型和字段的宽度;在 数据中,数据一般要求列对齐,不必用空格隔开。 ◼ 例: 字符格式:Input name $ 10. ; 数值格式:Input h 4.2 ; 日期格式:mmddyy10. date12. 例: Data a; Input d mmddyy10. d2 date12. ; cards; 10/19/2005 19/Oct/2005 ;