Download presentation
Presentation is loading. Please wait.
1
第三章 建立数据集 SAS系统中建立数据集的途径主要有三种: ●使用传统的SAS数据步程序
●用SAS/FSP软件中的FSEDIT和FSVIEW过程 ●使用SAS/ACCESS软件访问其他的数据库
2
3.1 利用数据步程序建立SAS数据 3.1.1 利用数据步创建SAS数据集的三种方式
第三章 建立数据集 3.1 利用数据步程序建立SAS数据 利用数据步创建SAS数据集的三种方式 1. 从程序中直接读入数据 ● DATA语句,启动一个数据步,命名数据集 ● INPUT语句,描述如何读入每一条记录(观测) ● CARDS语句,提供要输入的数据 2. 将外部原始数据文件转换成SAS数据集 ● INFILE语句,指定存储有要读入数据的文件 ● INPUT语句,描述如何读入每一条记录 3. 利用已有的数据集创建新的SAS数据集 ● SET/MERGE/UPDATE语句,连接/合并/修改已有 的数据集
3
3.1.2 常用数据步语句简介 1. DATA语句 语句格式: DATA <数据集名表> ;
第三章 建立数据集 3.1.2 常用数据步语句简介 1. DATA语句 语句格式: DATA <数据集名表> ; DATA语句的作用是表明数据步的开始,并给出所建数据集的名称。 所有的数据集名都是由半角符号“.”分隔的两部分组成。第1部分称作1级名(libname或库逻辑名),它标识数据集所存贮的位置;第2部分(2级名)标识特定的数据集。 如:DATA A; 则建立名为 WORD.A 的数据集(临时)。
4
使用_NULL_数据集名,不建立数据集。 DATA _NULL_;
第三章 建立数据集 临时数据集:不指定1级名,使用WORK。 空数据集: 使用_NULL_数据集名,不建立数据集。 DATA _NULL_; A=SIN(3.1415/4); B=INT(A*100); PUT A B; RUN; 自动命名: 不给出数据集名,则SAS自动以DATA1,DATA2等依次命名 。 DATA ; 当前数据集: 最后建立的数据集 。
5
DATA D1; INPUT A B; CARDS; 3 5 7 9 ; RUN; DATA D2; INPUT C D; 13 15
第三章 建立数据集 DATA D1; INPUT A B; CARDS; 3 5 7 9 ; RUN; DATA D2; INPUT C D; 13 15 17 19 21 23 PROC PRINT; RUN; PROC PRINT DATA=D1;
6
用来描述在输入记录中的数据,并把输入值赋给相应的变量。 语法:INPUT <变量列表> ;
第三章 建立数据集 2. INPUT语句 用来描述在输入记录中的数据,并把输入值赋给相应的变量。 语法:INPUT <变量列表> ; Input 语句中变量使用三种输入数据方式: 列表输入 列输入 格式化输入
7
在Input 语句中,变量只简单列出变量名 在数据中,数据由空格分隔。 例:Input name $ age sex $ S1 S2 S3;
第三章 建立数据集 (1)列表输入 在Input 语句中,变量只简单列出变量名 在数据中,数据由空格分隔。 字符数据默认长度为8,若读入长数据,需用length语句。 例:Input name $ age sex $ S1 S2 S3; 优点:简单易用。 缺点: 1)变量顺序必须与数据顺序一致。 2)不能有选择的读入数据,只能按顺序输入。 如:有A B C D E, 如只想输入A B D, 不能跳过C。 3)不能输入带有空格的数据。 注意:缺项值用“.”表示。
8
在Input 语句中,变量名后指出变量值所处的列号。 在数据中,同一变量的数据应位于相同的列上。 例:
第三章 建立数据集 (2)列输入 在Input 语句中,变量名后指出变量值所处的列号。 在数据中,同一变量的数据应位于相同的列上。 例: Input name $ 1-8 count 10-12; cards; zhangsan 101 Lisi 优点: 1)输入值可以以任何顺序读入:INPUT FIR SEC 10-12; 2)字符型数据中可包含空格 3)字符型数据可以最多到200个字符长 4)可读取全部或部分数值 :INPUT ID GROUP 13; 缺点:数据必须严格按照列位置输入。 注意:所读取列中只有空格或“.”时,被作为缺项值。
9
在Input 语句中,变量名后给出一个输入格式。 输入格式用来说明变量的数据类型和字段的宽度。 在数据中,数据一般要求列对齐。
第三章 建立数据集 (3)格式化输入 在Input 语句中,变量名后给出一个输入格式。 输入格式用来说明变量的数据类型和字段的宽度。 在数据中,数据一般要求列对齐。 例:INPUT NAME $10. H 4.2; 适合输入日期型数据: DATA DAYS; INPUT NUM $ BIRTHDAY MMDDYY8. TESTDAY DATE10. WT; CARDS; MAR /30/96 14/JAN/97 4 JUN1997 9 AUG 97 3 ; RUN;
10
●输出时一般要用相应的格式,详见8.(3)中FORMAT 语句。
第三章 建立数据集 注意: ●格式化读入时,读数据指针按给出的格式长度移动。MMDDYY8. 格式读入日期值时,日期值最长占8列。如格式给出的长度不足,则会出现数据截尾。DATE10. 格式是按ddmmmyy的格式读入数据的,最长可读入10列。 ●日期在SAS系统中的表示是用1960年1月1日至读入那一天之间的天数表示的。 如读入的日期在1960年以前, 则用负数表示。这种表示便于进行计算。 ●输出时一般要用相应的格式,详见8.(3)中FORMAT 语句。 ● 简化输入:如有X1,X X10十个字符型量的值紧挨在一起,每个量长度为3, 则 : INPUT (X1-X10) ($3.);
11
绝对指针控制 “@” (4)利用指针控制读数据的位置 SAS中提供行指针和列指针,用来指出下一输入位置。
第三章 建立数据集 (4)利用指针控制读数据的位置 SAS中提供行指针和列指针,用来指出下一输入位置。 1)列指针控制 :把指针移向你规定的列。 @(字符表达式); +n; +指针变量;+(表达式)。 绝对指针控制 INPUT @15 SALES 5.; 相对指针控制 “+” 相对指针控制是把指针由当前位置移动规定的列数。如: INPUT @23 DEP $ W $1.; 在第32列读取W的值。
12
读取数据后列指针的定位 读完数据后指针的位置取决于使用的输入方式。 当使用列表输入时指针移向被取值后的第2列,并从下一非空格列读下一数据。
第三章 建立数据集 读取数据后列指针的定位 读完数据后指针的位置取决于使用的输入方式。 当使用列表输入时指针移向被取值后的第2列,并从下一非空格列读下一数据。 当使用列输入或格式化输入时,指针移到所取值后的第1列, 并从此列开始计算下一变量的长。如: INPUT A 3-4 B; 或 A 2. B; 读完值后,指针移到第5列。 不论什么时候, 一旦指针移向新的记录行,列指针都自动置为1。
13
四种行指针控制:#n,#指针变量,#(表达式)及/。
第三章 建立数据集 2)行指针控制 移动指针到指定的行数。 四种行指针控制:#n,#指针变量,#(表达式)及/。 当一个观测值的数据多于1行时,输入时要指出行号及每个观测值所占的行数。可使用/表示移下一行。#n表示某一观测值的第几行。 如一个观测值由3行数据组成,各数据间以空格间隔,欲输入第一行5个数据中开始的4个数据NUM,A1-A3,再读入第二行开始的4个数据,则: INPUT NUM1 A1-A3/NUM2 B1-B3 #3; 或 INPUT NUM1 A1-A3 #2 NUM2 B1-B3 #3; 最后的#3表示将行指针移至最后一行(第3行),下一次执行INPUT语句时, 指针就从此行下跳一行,从下一记录的第一行读起。
14
行保持符使行指针保持在当前输入行。有两种行保持说明符:@和 @@。 通常一条INPUT语句执行完后, 下一次执行时, 要跳至下一数据行去读。
第三章 建立数据集 3) 行保持符 (又称续行符) 通常一条INPUT语句执行完后, 下一次执行时, 要跳至下一数据行去读。 @: 表示INPUT 语句执行完后不换行,下一INPUT语句从下面接着读入。在一个DATA步有多个
15
用法:不使用CARDS语句,数据单独存放。
第三章 建立数据集 3. INFILE 语句 指定从外部的纯文本文件中读入数据。 如: INFILE ‘C:FIT.TXT’; 用法:不使用CARDS语句,数据单独存放。 DATA D1; INPUT NUM $ 1-4 SEX $ 5 H 6-9 W 10-11; CARDS; 1001F1.6748 1002M1.7360 RUN; DATA D1; INFILE ‘C:FIT.TXT' INPUT NUM $ 1-4 SEX $ 5 H 6-9 W 10-11; RUN;
16
当数据文件中某一记录的数据数少于需要读的记录数,或最后一列无数据时,SAS 则到下一行开头去读入数据,这样就会出现输入错误,发生数据混乱。
第三章 建立数据集 当数据文件中某一记录的数据数少于需要读的记录数,或最后一列无数据时,SAS 则到下一行开头去读入数据,这样就会出现输入错误,发生数据混乱。 LOG窗口会显示一段信息: Note: SAS went to a new line when input statement reached past the end of a line. 此时需在INFILE语句后面加上一个选择项MISSOVER,如: INFILE 'A:FIT.TXT' MISSOVER;
17
第三章 建立数据集 4. SET语句 利用SET语句,可以从一已存在的数据集中依次读入每一个观测值。 对数据作某种处理后,写入数据集。如: DATA SCORE1; INPUT NUM S1-S3; CARDS; ; DATA TOT; SET SCORE1; TOTAL=SUM(OF S1-S3); PROC PRINT; RUN;
18
第三章 建立数据集 5.赋值语句 计算产生新的变量值或者修改某一变量值,如: Z=X+Y; Y=Y+1; 注意: ①如果表达式中的变量有缺项值,则结果有时为缺项值。如: A=.; B=A+5; C=SUM(A,5); ②为字符型变量赋值时, 要用引号将字符串括起, 如: NAME ='ZHANGLIN'; 如果一个字符常量中包含有一个单引号, 在 SAS 表达式中要写成两个连读的单引号或者外面用双引号。如: NAME='TOM''S' 或 NAME="TOM'S"
19
6. 求和语句 在建数据集时,如果希望对某一变量求累加值,可用求和语句。如: DATA A; INPUT X Y @@; S+X;
第三章 建立数据集 6. 求和语句 在建数据集时,如果希望对某一变量求累加值,可用求和语句。如: DATA A; INPUT X Y S+X; CARDS; ; PROC PRINT; RUN; 在求和语句中, 累加和变量的初值被SAS自动设为0。
20
7. 删除和保留变量 (1) DROP 语句 格式: DROP 变量表;
第三章 建立数据集 7. 删除和保留变量 (1) DROP 语句 格式: DROP 变量表; DROP语句指明某些变量不包括在建立的数据集中。但是这些变量可在该数据步的所有编程语句中使用 。在 DATA步中,DROP语句位于任何地方所产生的效果都相同。 DATA PARTS; INPUT NAME $ S1 S2; TOTAL=S1+S2 DROP S1 S2; CARDS; zhanglin 78 89 wangqiang 95 87
21
KEEP语句说明在正被建立的数据集中包括哪些变量。
第三章 建立数据集 (2) KEEP 语句 格式: KEEP 变量表; 如:KEEP NAME AVG; KEEP语句说明在正被建立的数据集中包括哪些变量。 在KEEP语句中不包括的变量仍适用于其它程序语句。KEEP语句可出现在DATA步的程序语句中的任何位置,它是非执行语句。 KEEP语句的作用与DROP语句正相反。在同一DATA步中,不要同时使用KEEP语句和DROP语句。
22
8. 提供信息的几个语句 (1) LENGTH 语句 当一个字符型变量长度超过或不用缺省值8时,可用该语句指出变量的长度。 如:
第三章 建立数据集 8. 提供信息的几个语句 (1) LENGTH 语句 当一个字符型变量长度超过或不用缺省值8时,可用该语句指出变量的长度。 如: DATA A; LENGTH NAME $ 13; INPUT NAME SEX $ H W; CARDS; ZhangZhihui F ZhaoChangtai M ; 由于NAME变量已在LENGTH语句中定义为字符型量,故INPUT语句中可不再用$号作定义。
23
注意: PRINT过程的PROC PRINT语句中应加LABEL选择项。
第三章 建立数据集 (2) LABEL 语句 变量名不许超过8个字符长。使用LABEL语句给变量一个标记,标记长可达40个字符。 它与变量值同时存于数据集中, 它可以被许多SAS过程打印出来。如: DATA D; INPUT NUM $ SEX $ H W; LABEL H='HEIGHT' W='WEIGHT'; CARDS; 101 M 102 F ; PROC PRINT LABEL; 注意: PRINT过程的PROC PRINT语句中应加LABEL选择项。
24
(3) FORMAT 语句 指定变量的输出格式。 对于日期时间型变量必须指定其格式。 如: DATA EMPLO;
第三章 建立数据集 (3) FORMAT 语句 指定变量的输出格式。 对于日期时间型变量必须指定其格式。 如: DATA EMPLO; INPUT NAME $ T DATE7.; FORMAT T WORDDATE.; CARDS; ZHONGLI 15JAN84 LIUWEI 03MAR85 ; PROC PRINT; FORMAT语句把SAS输出格式WORDDATE. 和变量T联系起来。
25
MISSING语句表明:在录入的数据中的某些值代表数值型数据的缺项值。
第三章 建立数据集 (4) MISSING 语句 格式: MISSING values; MISSING语句表明:在录入的数据中的某些值代表数值型数据的缺项值。 例如,假设字母 “A”代表在调查时家中无人, 字母“R”代表拒绝回答。 DATA SURV; MISSING A R; INPUT ID ANSWER CARDS; R A ; MISSING语句规定,在录入的数据行中,值 A和R 被认为是特殊的缺项值, 而不是无效的数值型数据值。
26
在语句开头加一个星号,就表示该语句的内容是注释信息而不予执行。 如: *-example--;
第三章 建立数据集 (5)注释语句 在语句开头加一个星号,就表示该语句的内容是注释信息而不予执行。 如: *-example--; data; label n="name" h="height"; input num n $ h; cards ; 1001 zhang3 1.73 1002 li4 1.82 ; 对于大段信息的注释,可用/*放在信息的开头,将*/放在注释信息的尾部。
27
第三章 建立数据集 3.2 FSEDIT和FSVIEW过程 SAS/FSP软件的FSEDIT和FSVIEW过程 以窗口的形式,交互地建立、编辑和显示数据集。变量及数据一目了然,用户可形象、细致地了解数据集的组成,交互性的操作如同编辑、浏览标准的数据库一般。 FSEDIT和FSVIEW过程的调用 (1)在PROGRAM EDITOR窗口的过程步中写出,然后SUBMIT 。 (2)在命令框中输入FSEDIT或FSVIEW命令,调出相应的窗口 。
28
3.2.1 用FSEDIT过程建立SAS数据集 PROC FSEDIT NEW=SAS数据集名; RUN; (1) FSEDIT NEW窗口
第三章 建立数据集 3.2.1 用FSEDIT过程建立SAS数据集 PROC FSEDIT NEW=SAS数据集名; RUN; (1) FSEDIT NEW窗口 (2) 定义所有变量及属性 Name:变量的名字 Type :类型,N或空格代表数字型,C或$代表字符型。 Length:长度,字符型变量不超过200, 缺省值为8。 Label :标签,长度为1~40的字符串,用以说明该变量。 Format:变量的输出格式。 Informat:变量的输入格式 在顶行菜单或在右键快捷菜单中选择Locals,再选择Format/informat,可转换Format/Informat栏。
29
ADD命令可添加记录,在编辑窗口中就可以输入、编辑数据。(F5, ADD按钮) CANCEL命令可放弃当前的输入。 其他编辑按钮:
第三章 建立数据集 (3) 当定义完所有变量及属性后,在命令框中发布END命令,就进入FSEDIT记录编辑窗口。 ADD命令可添加记录,在编辑窗口中就可以输入、编辑数据。(F5, ADD按钮) CANCEL命令可放弃当前的输入。 其他编辑按钮: Save, Copy, Delete, Previous,Next等。 END命令结束输入,保存数据集,退出窗口。
30
3.2.2 用FSEDIT过程修改SAS数据集 1. 用FSEDIT过程修改数据集的一般格式 2. 常用操作方法
第三章 建立数据集 3.2.2 用FSEDIT过程修改SAS数据集 1. 用FSEDIT过程修改数据集的一般格式 PROC FSEDIT DATA=SAS数据集名; RUN; 2. 常用操作方法 (1) 修改 前后翻页:FORWARD,BACKWARD命令或PgUp,PgDn 键。 移动光标:鼠标及↑↓←→键。 (2)获取子集 发布WHERE命令来获得数据集的一个子集。 如:WHERE FLIGHT='123'
31
使用ADD和DELETE命令添加或者删除记录。 (4) 退出 发布END命令结束修改,保存数据集,退出当前窗口。
第三章 建立数据集 (3) 添加、删除记录 使用ADD和DELETE命令添加或者删除记录。 (4) 退出 发布END命令结束修改,保存数据集,退出当前窗口。
32
3.2.3 用FSVIEW过程浏览SAS数据集 1. 用FSEDIT过程浏览数据集的一般格式 2. 常用操作方法
第三章 建立数据集 3.2.3 用FSVIEW过程浏览SAS数据集 1. 用FSEDIT过程浏览数据集的一般格式 PROC FSVIEW DATA=SAS数据集名; RUN; 2. 常用操作方法 (1) 浏览 前后翻页:FORWARD,BACKWARD命令或PgUp,PgDn 键。 左右翻屏: RIGHT,LEFT命令或使用滚动条。 (2)选择变量 DROP命令可以去掉不需要显示的变量,如: DROP LIQUOR SOFDRNK
33
WHERE ALSO命令可以获得一个子集的子集,如:WHERE ALSO BEER>14
第三章 建立数据集 (3) 获取子集 发布WHERE命令,如: WHERE BEER>12 WHERE ALSO命令可以获得一个子集的子集,如:WHERE ALSO BEER>14 WHERE UNDO:取消刚才发布的WHERE命令。 (4) FSVIEW窗口中的EDIT按钮 (5) 退出 最后发布END命令退出FSVIEW窗口。 FSVIEW也可以用来修改SAS数据集,它和FSEDIT的主要区别是:FSEDIT每屏只显示一条观测,而FSVIEW则以表的形式每屏显示尽可能多的观测。
34
3.3用SAS/ASSIST建立、管理数据集 3.3.1启动SAS/ASSIST ●直接按工具栏中的SAS/ASSIST按钮。 方法:
第三章 建立数据集 3.3用SAS/ASSIST建立、管理数据集 3.3.1启动SAS/ASSIST 方法: ●直接按工具栏中的SAS/ASSIST按钮。 ●从菜单Globals中选择SAS/ASSIST。 ●在命令框中输入ASSIST命令。 在SAS/ASSIST主菜单中点击DATA MGMT按钮,进入数据管理窗口。
35
3.3.2 建立SAS数据集 1.在数据管理菜单中单击CREATE/IMPORT按钮。
第三章 建立数据集 建立SAS数据集 1.在数据管理菜单中单击CREATE/IMPORT按钮。 2.在CREATE/IMPORT菜单中点Enter data interactively。 3.在输入方式选择菜单中选一种方式。 4.在建新数据集窗口中输入数据集的名称及类型。 5.在数据集定义窗口中定义所有变量及属性。 6. 进入FSEDIT或FSVIEW窗口输入具体数据。 7. END退出,单击go back按钮返回。
36
3.3.3 编辑、浏览数据集 1.在数据管理菜单中单击EDIT/BROWSE按钮。
第三章 建立数据集 3.3.3 编辑、浏览数据集 1.在数据管理菜单中单击EDIT/BROWSE按钮。 2.在编辑/浏览选择菜单中选择Edit data(编辑)。 3.选择方式Tabular format或Single observation。 4.在数据集选择窗口中选择一个数据集。 5. 进入FSEDIT或FSVIEW窗口编辑。 6. END退出。按go back按钮返回。 进行浏览操作就在上面第2步选择Browse data ,再选择浏览类型、数据集,就可进行浏览 。
37
3.4 使用VIEWTABLE 3.4.1启动VIEWTABLE 在VIEWTABLE窗口中可浏览、编辑或创建SAS的数据文件。
第三章 建立数据集 3.4 使用VIEWTABLE 在VIEWTABLE窗口中可浏览、编辑或创建SAS的数据文件。 两种浏览方式:Table方式(一屏显示多个观测),Form方式(一屏显示一个观测)。用户可以对表进行各种操作,例如排序,改变变量的颜色和字体,显示字段的标签,移去或添加字段等等,操作十分直观、方便。 3.4.1启动VIEWTABLE 方法: ●在下拉菜单选择Globals→Manage→Open table ●发布VIEWTABLE(或VT)命令即可 。
38
第三章 建立数据集 3.4.2 查询VIEWTABLE在线帮助 1. 从SAS下拉菜单选择:Help→Online Documentation→Base SAS Documentation →VIEWTABLE Window→VIEWTABLE Window。 2. VIEWTABLE下拉菜单选择:Help→Extended Help。 3. VIEWTABLE窗口命令行使用VTHELP命令。 4. VIEWTABLE窗口工具栏选择Help按钮。
39
3.4.3使用VIEWTABLE 1. 建新数据集 定义变量及属性
第三章 建立数据集 3.4.3使用VIEWTABLE 1. 建新数据集 定义变量及属性 VIEWTABLE窗口表中一列可代表一个变量,在列变量名上击右键, 选Column attribute可定义变量的名称、属性,点Apply按钮,再点Close按钮可保存对该变量新的定义。 输入变量的值 在变量名下表格栏中直接输入该变量的值。最后选菜单FILE→Save 或工具栏上的Save按钮,选择存储的路径,输入名称进行保存。
40
第三章 建立数据集 2.浏览/编辑数据集 打开一个已建立的数据集 用菜单栏上的FILE→Open 或工具栏上的Open按钮可选择一个已建立的数据集和操作模式(浏览或编辑)将其调入VIEWTABLE窗口,在浏览模式下不能对数据集进行修改。 编辑或浏览 在顶行菜单项EDIT(或在右键弹出的快捷菜单)中选择Edit mode或按工具栏上Edit按钮可对数据集进行编辑操作。在VIEW菜单中可选择数据显示采用Table或Form模式。
41
3. VIEWTABLE的一些主要功能 (1) 下拉菜单 File(文件) Edit(编辑表) Data(操纵表)
第三章 建立数据集 3. VIEWTABLE的一些主要功能 (1) 下拉菜单 File(文件) Edit(编辑表) Data(操纵表) View (设置显示方式) (2) 弹出菜单 (3) 工具栏 (4) Commands
Similar presentations