章sas系统的数据管理2008ppt课件_第1页
章sas系统的数据管理2008ppt课件_第2页
章sas系统的数据管理2008ppt课件_第3页
章sas系统的数据管理2008ppt课件_第4页
章sas系统的数据管理2008ppt课件_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SAS第二章 SAS系统的数据管理 2.1 SAS系统对数据的管理 2.2 SAS数据集的浏览和编辑 2.3 SAS数据集的建立 2.4 SAS数据集的加工、合并与拼接 SAS2.1 SAS系统对数据的管理 数据数据 直接输入直接输入 流行流行 数据库数据库 其它其它 文件格式文件格式 SAS数据集 SAS应用程序应用程序 是一种由 SAS 系统创建和管 理的有特殊结 构的 SAS文件 存储在被 称为 SAS 数据库数据库 的 文件集中 SAS数据集( Data sets) 是一种关系 型结构,包括描述部分和数据部分 描述部分描述部分 包含了一些关于数据属性的信息 (View columns) (Properties) 数据部分数据部分 是由数据构成的矩形表 观测 1 观测 2 观测 3 VAR1 VAR2 VAR3 VAR4 VAR5 1234 abcd 3456 abcd 5678 2345 bcde 4567 bcde 6789 3456 cdef 5678 cdef 7890 变量(变量( Variable) 对对 缺缺 失失 值值 ( Missing Value) 的处理:的处理: 字符型变量用空格表示字符型变量用空格表示 数值型变量用句号数值型变量用句号 .表示表示 相当于相当于 记录或记录或 行行 相当于域相当于域 或字段或字段 观 测 变变 量量 SAS数据库数据库 存储了存储了 SAS数据集(数据集( SAS DATA)和)和 SAS目录册(目录册( SAS CATALOG) 等等 SAS专用文件,从而使专用文件,从而使 SAS系统能够在程系统能够在程 序中指明并查阅文件。序中指明并查阅文件。 在在 Windows 操作系统下,操作系统下, SAS数据库数据库 是一种是一种 以路径为基础的组织方式;每个以路径为基础的组织方式;每个 SAS数据库数据库 均以均以 库标记库标记 来识别。来识别。 又称库又称库 逻辑名,是某逻辑名,是某 文件所在路径的别名文件所在路径的别名 指指 系统设置、声系统设置、声 音、图象音、图象 等不能等不能 表示成行列结构表示成行列结构 表格形式的数据表格形式的数据 为 永久库,其所有文件将被 保留,库标记可由用户指定 由 系统自动指定由系统自动指定的 临时库, 结束 SAS 后库中的 数据被自 动删除 SAS数据集数据集 采用两级命名方式定名: Libname . SAS-filename ( 库标记 . 文件名 ) 如:名为如:名为 DST2 . FISH的数据集的数据集 默认为默认为 WORK , 即临时数即临时数 据集只要有数据集名即可据集只要有数据集名即可 SAS8.2以上版本提供了直接管理以上版本提供了直接管理 SAS数据库数据库 及及 里面文件的里面文件的 SAS管理器管理器 ( SAS Explorer)窗口窗口 进入进入 SAS管理器窗口管理器窗口 的方法:的方法: 单击工具栏中的图标单击工具栏中的图标 进入;进入; 或:或: 从下拉菜单从下拉菜单 View中选中选 Explorer。 也可通过其它窗口来实现对数据库的管理:也可通过其它窗口来实现对数据库的管理: 用用 LIBNAME命令进入命令进入 Libname窗口窗口 ; 用用 DIR命令进入命令进入 Dir窗口窗口 ; 用用 VAR命令进入命令进入 Var窗口窗口 (默认为显示临时库中数据默认为显示临时库中数据 集的属性集的属性 ) 。 是否显示库内是否显示库内 文件的细节文件的细节 控制管理器窗控制管理器窗 口的树形显示口的树形显示 是否打开是否打开 返回到程序编返回到程序编 辑窗口界面辑窗口界面 SAS数据库的设定数据库的设定 在在 SAS管理器窗口管理器窗口 为当前活动窗口的前提下,从下拉为当前活动窗口的前提下,从下拉 菜单菜单 File中选中选 New命令命令 ; 或:或: 点击工具栏中的图标点击工具栏中的图标 。 进入建立新库对话框进入建立新库对话框 : 也可使用也可使用 LIBNAME语句指定语句指定 SAS库标库标 : LIBNAME 库名 目录名 如:如: LIBNAME AA C:SAS; (可直接在(可直接在 PGM窗口中运行)窗口中运行) SAS第二章 SAS系统的数据管理 2.1 SAS系统对数据的管理 2.2 SAS数据集的浏览和编辑 2.3 SAS数据集的建立 2.4 SAS数据集的加工、合并与拼接 SAS2.2 SAS数据集的浏览和编辑 在在 SAS系统中,浏览和编辑系统中,浏览和编辑 SAS数据集数据集 必须先设定必须先设定 SAS 数据库数据库 ,将要浏览和编辑的数据集存放在已设定的,将要浏览和编辑的数据集存放在已设定的 SAS数据库数据库 中。中。 浏览 SAS数据集的描述部分 :Solutions Desktop Desktop Explorer , 选中 数据集 按右键,在弹出菜单中选 Contents; 或或 直接在直接在 SAS管理器窗口管理器窗口 中选中数据集,按右键, 在弹出菜单中选 View columns 或 Properties。 浏览与编辑浏览与编辑 SAS数据集数据集 的数据部分的数据部分 : 进入进入 Viewtable窗口:窗口: 在数据库对话窗中直接双击数据集图标; 发命令: VT 数据集名数据集名 或:或: 或:或: 点击图标 进入库管理对话窗 ,双击欲选 择的数据集,在 view下拉下拉 菜单中,选择菜单中,选择 form view 或 table view 一次只显示一次只显示 一条记录一条记录 以矩阵表格形式显示数据以矩阵表格形式显示数据 ,一次可显示多条记录,一次可显示多条记录 浏览与编辑浏览与编辑 SAS数据集数据集 的数据部分:的数据部分: 除了 Viewtable 窗口 外, FSV等也提供了字符型界面的数据集的 浏览和编辑的窗口,它打开数据集的速度更 快( 发命令发命令 FSV 数据集名 即可进入 fsview窗 口 ); Insight和 Analyst Application也提供了对 数据集浏览和编辑的窗口,它们在生成新变 量方面有更强的功能。 SAS第二章 SAS系统的数据管理 2.1 SAS系统对数据的管理 2.2 SAS数据集的浏览和编辑 2.3 SAS数据集的建立 2.4 SAS数据集的加工、合并与拼接 SAS2.3 SAS数据集 的建立 建立 SAS数据集 的各种途径 数据存于纸上 (需直接键入) 数据存于文本 文件 数据存于流行数 据库文件中 用 VIEWTABLE 、 FSEDIT、 FSVIEW 编程:用 DATA语句 用 Import菜单 用 SAS/ACCESS 用用 VIEWTABLE新建数据集新建数据集 启动启动 VIEWTABLE 窗口窗口 在在 Viewtable窗口内选中变量后,从弹出的菜单中选窗口内选中变量后,从弹出的菜单中选 Column Attributes, 根据提示对变量的属性加以规定根据提示对变量的属性加以规定 ;但对格式和其它属性无特殊要求的也可先输入数据;但对格式和其它属性无特殊要求的也可先输入数据 ,而后设定各个变量的属性。,而后设定各个变量的属性。 设定变量属性设定变量属性 发布命令发布命令 VIEWTABLE ( 或或 VT ) ; 或或 :利用菜单利用菜单 Tools Table Editor . 数据集变量的数据集变量的 属性描述属性描述 : Name 变量名字,由字母或下划线开始, 且不超过 8个字符或数字 Type 变量类型, C或者 $代表字符型, N 或者空格代表数值型 Length 变量长度,缺省为 8字节( 200) Label 变量标签,缺省为 40字节 Informat 输入格式名 w.d Format 输出格式名 w.d 必必 须须 界界 定定 用 VIEWTABLE 新建数据集 设定变量属性设定变量属性 用 VIEWTABLE 新建数据集 设定变量属性设定变量属性 w.d 标准的数字型格式 $w. 标准的字符型格式 COMMAw.d 数字中嵌入逗号 DOLLARw.d 数字中嵌入逗号,数字前加上 $ DATAw. 日期格式 MMDDYYw. 日期格式 几种常用的输入、输出格式:几种常用的输入、输出格式: “w”代表输入或输出的宽度;代表输入或输出的宽度; “.”必须的分隔必须的分隔 符;符; “d”小数部分的长度。小数部分的长度。 用 VIEWTABLE 新建数据集 设定变量属性设定变量属性 SAS数据集数据集 数据值的内部存放格式并不数据值的内部存放格式并不 一定与该数据值的输入和输出格式一致一定与该数据值的输入和输出格式一致 12234.12 12 234.1, comma8.2 dollar8.2 8.2 12234.12 12234.12 输出格式 8.2comma8.2 dollar8.2 实际存储数值 12234.12 12234.1 1223412 234.1234,$12 234.1234, 12234.1234 输入格式 实际存储数值输入数据 输出数据 $1,234.56 1234.56dollar8.2 用 VIEWTABLE 新建数据集 设定变量属性设定变量属性 20OCT97 ddmmyy8 mmddyy8 yymmdd8 输出数据 输出格式 data7 ddmmyy8 实际存储 数值 13807 日期的输入、输出格式:日期的输入、输出格式: 20/10/97 10/20/97 20/10/97 97-10-20 日期在日期在 SAS内部以数值型变量存储,这个变内部以数值型变量存储,这个变 量的值等于该日期距离量的值等于该日期距离 1960年年 1月月 1日日 的天数的天数 输入数据 输入格式 1960,1,1 0 1960,1,2 1 1960,2,1 31 使用 Import菜单由文本文件读入 从从 SAS下拉菜单选择:下拉菜单选择: File Import Data, 按提示逐步转换按提示逐步转换 外部文件为外部文件为 SAS数据集数据集 而由而由 File Export Data, 则可按提示则可按提示 将将 SAS数据集转换为外部文件数据集转换为外部文件 在在 Windows 操作系统中,外部文件是指文本文件操作系统中,外部文件是指文本文件 (格式为(格式为 .dbf、 .xls、 .wk1、 .wk3等);等); 对一些用户规定格式的文件可提供对一些用户规定格式的文件可提供 EFI( External File Interface外部文件界面)。外部文件界面)。 使用数据步( DATA STEP) 新建数据集 以以 文本方式文本方式 存放待生成存放待生成 SAS数据集数据集 的数据文件的数据文件要求要求 : 自自 文本数据文件生成文本数据文件生成 SAS数据集数据集 的一般形式:的一般形式: DATA SAS数据集名 ; ATTRIB语句 设定变量属性 ; INFILE 文件名 FIRSTOBS=n1 OBS=n2 ; INPUT 语句; 其他 SAS语句 ; RUN; 关键字关键字 DATA后的后的 数据集名数据集名 可以省略可以省略 ,这时,这时 SAS自动生成一个临时数据集名;也可以使用特自动生成一个临时数据集名;也可以使用特 殊名字殊名字 _null_, 表示本数据步不生成数据集。表示本数据步不生成数据集。 说说 明明 DATA步中设定变量属性的语句:步中设定变量属性的语句: LENGTH 变量名变量名 $ 长度长度 ; INFORMAT 变量名变量名 输入格式输入格式 ; FORMAT 变量名变量名 输出格式输出格式 ; LABEL 变量名变量名 =字符串输入格式字符串输入格式 ; Length 还决定了变量在数据集中的次序还决定了变量在数据集中的次序 使用数据步( DATA STEP) 新建数据集 INPUT语句语句 INPUT 设定设定 1 设定设定 n | ; 设定的格式:设定的格式: List: 变量名 $ :输入格式 Column : 变量名 $ 始列 -终列 Formatted : 指针 变量名 输入格式 指针: n|+n Named : 变量名 = $ 始列 -终列 输入换行控制:输入换行控制: : 不换行等待下一个 Input 语句 :形成输出记录时输入也不换行 使用数据步( DATA STEP) 新建数据集 INPUT语句语句 -List格式(自由格式)格式(自由格式) INPUT 变量名变量名 $ :输入格式:输入格式 变量名变量名 $ :输入格式:输入格式 ; 源文件中字段间至少有一个空格或特定字符分隔;源文件中字段间至少有一个空格或特定字符分隔; 字段只能按序输入;字段只能按序输入; 缺失值必须用句点表示;缺失值必须用句点表示; 字符变量的值若要包含空格,则在字符变量的值若要包含空格,则在 $ 符号后需再加上符号后需再加上 “ 每个变量按指定的始列终列读入每个变量按指定的始列终列读入 ; 字符变量的长度不受缺省值的限制(但字符变量的长度不受缺省值的限制(但 200) ; 变量值可含空格,变量输入次序可以是任意的;变量值可含空格,变量输入次序可以是任意的; 任何字段或其部分可重复读入。任何字段或其部分可重复读入。 说明:说明: 使用数据步( DATA STEP) 新建数据集 INPUT语句语句 -Formatted格式格式 INPUT 指针 变量名 输入格式 指针 变量名 输入格式 ; 指针控制符指针控制符 n 指将输入指针移动到第指将输入指针移动到第 n列,列, +n指将输入指针向后移动指将输入指针向后移动 n列;列; 源文件中各变量所在位置必须是规则的源文件中各变量所在位置必须是规则的 ; 每个变量按输入格式读入指定的长度每个变量按输入格式读入指定的长度 ; 可用指针控制下一个变量读入的始点可用指针控制下一个变量读入的始点 ; 变量值可含空格,变量输入次序可以是任意的;变量值可含空格,变量输入次序可以是任意的; 任何字段或其部分可重复读入。任何字段或其部分可重复读入。 说说 明明 使用数据步( DATA STEP) 新建数据集 data CHILD; infile “C:SUNNY例题数据资料 CHILD.TXT”; input ID X1 $ X2 X3 X4; proc print data=CHILD; run; 【 例例 】 ( 自文本文件生成数据集)自文本文件生成数据集) 使用数据步( DATA STEP) 新建数据集 DATA SAS数据集名; ATTRIB语句 设定变量属性 ; INPUT 语句; 其他 SAS语句 ; CARDS; 数据行 ; (说明:数据行结束分号需另起一行) RUN; 直接输入数据生成数据集的一般步骤直接输入数据生成数据集的一般步骤比较:比较: 【 例例 】 data XYZ; attrib name length=$12; input name $ cards; Lihua 20 Sun Li-ning 25 ; proc print data=XYZ; run; SAS第二章 SAS系统的数据管理 2.1 SAS系统对数据的管理 2.2 SAS数据集的浏览和编辑 2.3 SAS数据集的建立 2.4 SAS数据集的加工、合并与拼接 SAS 2.4 SAS数据集数据集 的加工、合并及拼接 2.4.1 SAS表达式及数据步常用语句表达式及数据步常用语句 2.4.2使用数据步加工使用数据步加工 SAS数据集数据集 2.4.3 SAS数据集的合并与拼接数据集的合并与拼接 2.4.4使用使用 SQL Query窗加工窗加工 SAS数据集数据集 SAS数据步数据步 程序中的计算由程序中的计算由 SAS表达式表达式 完完 成成 ; SAS表达式表达式 通过通过 运算符运算符 、 括号括号 等,将调用等,将调用 的的 常量常量 、 变量变量 和和 函数函数 连接起来,得到一个计连接起来,得到一个计 算结果。算结果。 SAS表达式表达式 SAS运算符运算符 包括包括 算术算术 、 比较比较 和和 逻辑逻辑 等运算符。等运算符。 算术运算符算术运算符 作用作用 举例举例 + 加法 sum=x+y; - 减法 diff=x-y; * 乘法 mult=x*y; / 除法 divide=x/y; * 幂运算 raise=x*y; | 字符串拼接 str=str1|str2; 比较比较 运算符运算符 运算符运算符 符号符号 意义意义 逻辑逻辑 运算符运算符 LT 大于 (greater than) EQ = 等于 (equal) LE = 大于等于 (greater equal) NE = 不等于 (not equal) IN 等于列举中的一个 AND INPUT x1 x2 x3 x4; CARDS; 1 2 3 4 2 3 4 5 5 6 7 8 ; DATA A123; SET ABC; X=sum (of x1, x2, x3, x4); PROC PRINT; RUN; 常用数学函数常用数学函数 ABS(x)绝对值函数,对 x取绝对值; MAX(x1,x2, xn) 最大值函数,求所有自变量中的最大值; MIN (x1,x2, xn) 最小值函数,求所有自变量中的最小值; MOD(x,y) 余数函数,求 x除以 y的余数; SQRT(x) 平方根函数,求 x的平方根; ROUND(x,eps) 舍入函数,求 x按 eps指定精度四舍五入后的结果; INT(x) 取整函数,对 x取整数部分; LOG(x) 自然对数函数,求 x的整数部分; EXP(x) 指数函数,求 x的指数函数 ex; SIN(x),COS(x),TAN(x) 三角函数,分别求 x的正弦、余弦、正切函数; ARSIN (x),ARCOS(x),ARTAN(x) 反三角函数,分别求 x的反正弦、反 余弦、反正切函数; 等等 常用数组函数常用数组函数 DIM(x)求数组 x第一维的元素的个数; DIMk(x) 求数组 x第 k维的元素的个数; LBOUND(x) 求数组 x第一维的下界; HBOUND(x) 求数组 x第一维的上界; LBOUNDk(x) 求数组 x第 k维的下界; HBOUNDk(x) 求数组 x第 k维的上界 . 常用字符函数常用字符函数 TRIM(s)返回去掉字符串 s的尾随空格的结果; UPCASE(s) 把字符串 s中所有小写字母转换为大写字母后 的结果; LOWCASE(s) 把字符串 s中所有大写字母转换为小写字母 后的结果; INDEX(s,s1) 查找 s1在 s中出现的位置,找不到时返回 0; RANKS(s)字符 s的 ASCII码值; 等等 常用日期和时间函数常用日期和时间函数 MDY(m,d,yr)生成 yr年 m月 d日的 SAS日期; YEAR(date) 由 SAS日期值 date得到年; MONTH(date) 由 SAS日期值 date得到月; DAY(date) 由 SAS日期值 date得到日; WEEKDAY(date) 由 SAS日期值 date得到星期几; QTR(date) 由 SAS日期值 date得到季度值; HMS(h,m,s)由小时 h、 分钟 m、秒 s生成 SAS时间值; DHMS(d,h,m,s)由 SAS日期值 d、 小时 h、 分钟 m、秒 s 生成 SAS时间值; 等等 DATA步中的常用语句步中的常用语句 PUT语句 输出语句 SET语句 读取观测语句 ATTRIB语句 设定变量属性 赋值语句 计算 SAS表达式,给变量赋值 DROP语句 删除变量语句 KEEP语句 保留变量语句 IF语句 条件语句 DO-END语句 循环语句 DELETE语句 删除语句 OUTPUT语句 输出到数据集语句 COMMENT语句 注释语句 ARRAY语句 数组语句 PUT语句:语句: 用来显示输出结果,输出结果直 接显示在 LOG窗口 中 DATA步中的常用语句步中的常用语句 输出项可以是变量名或字符串,但不能是数值常输出项可以是变量名或字符串,但不能是数值常 量或表达式,各项之间需用空格分开;量或表达式,各项之间需用空格分开; 输出项还可以指定具体列位置;输出项还可以指定具体列位置; 为使输出不产生换行,可在为使输出不产生换行,可在 PUT语句的结尾处加语句的结尾处加 一个一个 符号。符号。 说明:说明: 一般形式:一般形式: PUT 输出项 1 输出项 2 或: PUT 变量名 = 例例 DATA abc; X=0.5; Y=sin(x); PUT “Sine funtion value of” x “is” y; PUT x= y=; PUT x 10-20 .6 y 30-40 .6; RUN; DATA步中的常用语句步中的常用语句 SET语句:语句: 把一个已有数据集复制到一个新 数据集,同时还可以进行修改 DATA步中的常用语句步中的常用语句 KEEP= : 表示引入时只要指定的变量;表示引入时只要指定的变量; DROP=: 表示不引入指定的变量;表示不引入指定的变量; OBS=: 表示读取观测时读到指定的序号为止;表示读取观测时读到指定的序号为止; FIRST= : 表示从指定序号的观测开始读取而跳表示从指定序号的观测开始读取而跳 过之前的观测不读。过之前的观测不读。 数据集选项主要有:数据集选项主要有: 一般形式:一般形式: SET 数据集名(数据集选项) ATTRIB语句语句 :用来指定变量的类型、标签、长:用来指定变量的类型、标签、长 度、输入输出格式等变量属性度、输入输出格式等变量属性 DATA步中的常用语句步中的常用语句 一般形式:一般形式: ATTRIB 变量名 属性 变量名 属性 属性的表示方法为属性的表示方法为 “属性名属性名 =属性值属性值 ” ; 可以同时指定多个变量的属性,也可以为一个变可以同时指定多个变量的属性,也可以为一个变 量同时指定多个属性。量同时指定多个属性。 说明:说明: 例例 DATA sales; ATTRIB name LABEL=“姓名姓名 ” LENGTH=$10 date LABEL=“日期日期 ” FORMAT=yymmdd10. INFORMAT=yymmdd10. amount LABEL=“金额金额 ” FORMAT=10.2; INPUT name $ 1-10 date amount; Cards; 张鹏张鹏 2003/03/18 2000 李志明李志明 2003/05/23 1500 王敏王敏 2003/09/01 3000 ; RUN; PROC PRINT NOOBS LABEL; RUN; 赋值语句:赋值语句: 用于计算一个 SAS表达式,并将 表达式的值赋给变量 一般形式为:一般形式为: Var = expression 为为 新建或修改新建或修改 的变量名的变量名 为由变量、为由变量、 SAS 函数和四则运算函数和四则运算 构成的表达式构成的表达式 DATA步中的常用语句步中的常用语句 条件语句条件语句 的一般形式为:的一般形式为: IF 条件表达式 THEN 可 执行语句; ELSE 可 执行语句( 不是必须的 ); 条件表达式主要包含操作数和操作符:条件表达式主要包含操作数和操作符: 操作数 变量名 常数 比较操作符 逻辑操作符操作符 DATA步中的常用语句步中的常用语句 DO-END语句:语句: 在 DO后面直到 END语句之前的 所有语句作为一个单元(称为一个 DO组 )被执行 ,任意多个 DO组 能够被嵌套执行。 常用类型有:常用类型有: 简单简单 DO 语句语句 常常 用在用在 IF-THEN/ELSE 语句里,根据语句里,根据 IF语句语句 的条件判断结果来确的条件判断结果来确 定语句组的执行定语句组的执行 ; If X 5 then do; Y=X 10 ; put X = Y= ; end; Z=X+3; ; DATA步中的常用语句步中的常用语句 data _null_ ; do I=1 to 6 by 2 ; put I= ; end; run; 循环循环 DO 语句语句 使使 DO和和 END之间的语之间的语 句根据循环控制变量的值重复被执行句根据循环控制变量的值重复被执行 DO 循环控制变量 =初值 TO 终值 BY 步长 ; 其它可执行程序 ; END; DATA步中的常用语句步中的常用语句 data males females; set child; if x1=m then output males; else output females; run; OUTPUT语句语句 使使 SAS系统输出当前的观测或系统输出当前的观测或 DO组中的变量到正被创建的数据集中组中的变量到正被创建的数据集中 说明说明 : 所有规定的数据集的名字也必须在 DATA 语句中出现 DATA步中的常用语句步中的常用语句 OUTPUT 数据集 1 数据集 n ; 一般形式为:一般形式为: COMMENT语句语句 为注释语句,可放在为注释语句,可放在 SAS过过 程的任何地方用来说明这个过程的目的,如解释程的任何地方用来说明这个过程的目的,如解释 说明程序中的一些独特的程序段,或介绍整个程说明程序中的一些独特的程序段,或介绍整个程 序等。序等。 DATA步中的常用语句步中的常用语句 注释内容; 或: /*注释内容 */一般形式为:一般形式为: *循环循环 DO 语句语句 ;(或: /*循环循环 DO 语句语句 */) data _null_ ; do I=1 to 6 by 2 ; put I= ; end; run; 数组:数组: SAS过程中使用同一个名字称呼,用下标来区过程中使用同一个名字称呼,用下标来区 分的合在一起的同为数值型或同为字符型的一组变量分的合在一起的同为数值型或同为字符型的一组变量 数值型数组数值型数组 ARRAY 数组名(维数说明)数组名(维数说明) 数组元素名列表(初始值表)数组元素名列表(初始值表) ; 例如例如 :q ARRAY tests( 3) Math Chinese English( 0,0,0) ; q ARRAY x( 3) ; q ARRAY tests()() Math Chinese English( 0,0,0) ; q ARRAY table( 2,2) x11 x12 x21 x22; 字符型数组字符型数组 ARRAY 数组名(维数说明)数组名(维数说明) $ 元素长度说明元素长度说明 数组元素名列表(初始值表)数组元素名列表(初始值表) ; 例如例如 q ARRAY names( 3) $ 10 child father mother; 数组:数组: SAS过程中使用同一个名字称呼,用下标来区过程中使用同一个名字称呼,用下标来区 分的合在一起的同为数值型或同为字符型的一组变量分的合在一起的同为数值型或同为字符型的一组变量 DATA abc; ARRAY x(10); DO i=1 to 1000; DO j=1 to 10; x(j)=normal(0); END; OUTPUT; END; DROP i j ; RUN; DATA new; SET abc(obs=100 keep=x1 x2); PROC PRINT; RUN; 正态分布随正态分布随 机数函数机数函数 SAS 2.4 SAS数据集数据集 的加工、合并及拼接 2.4.1 SAS表达式及数据步常用语句 2.4.2使用数据步加工 SAS数据集 2.4.3 SAS数据集的合并与拼接 2.4.4使用使用 SQL Query窗加工 SAS数据集 SAS 加工 SAS数据集 (增改删数据集中的变量和记录)(增改删数据集中的变量和记录) 菜单:菜单: SQL Query窗窗 编程:编程: 数据步数据步 2.4 SAS数据集的加工、合并及拼接 在生成在生成 SAS数据集时进数据集时进 行:行: 在在 Input语句后加语句后加 入各种语句入各种语句 对已有对已有 SAS数据集进行数据集进行 加工:加工: 在在 Set语句后加语句后加 入各种语句入各种语句 使用数据步加工使用数据步加工 SAS数据集数据集 增改删数据集中的变量和记录增改删数据集中的变量和记录 DATA 数据集名 (新 ); ; INPUT ; 其他 SAS语句; RUN; 在在 Input语句后加入语句后加入 其它其它 SAS语句语句 DATA 数据集名( 新 ); SET 数据集名 (旧 ); INPUT ; 其他 SAS语句; RUN; 或:或: 用用 Set语句,并语句,并 加入其它加入其它 SAS语句语句 选择变量选择变量 在 DATA语句 中用选项 DROP=和 KEEP= 在 SET语句 中用选项 DROP=和 KEEP= 在 DATA步 中加入 DROP语句 KEEP语句 其一般形式为:其一般形式为: DATA 数据集 (DROP(或(或 KEEP) =变量序列 ); SET 数据集 (DROP(或(或 KEEP) =变量序列); 使用数据步加工使用数据步加工 SAS数据集数据集 选择观测选择观测 在 DATA语句 中用选项 WHERE= 在 SET语句 中用选项 WHERE= 在 SET语句 中用选项 FIRSTOBS=和 /或 OBS= 或:或: 利用子集利用子集 IF语句语句 选择观测选择观测 保留: IF expression; 剔除: IF expression THEN DELETE; 使用数据步加工使用数据步加工 SAS数据集数据集 DATA abc1; SET sunny.bclass; keep name age height; where age=13; RUN; PROC PRINT; RUN; 例例 使用数据步加工使用数据步加工 SAS数据集数据集 DATA abc2; SET sunny.bclass (keep=name age height); where age=14; RUN; PROC PRINT; RUN; DATA abc3 (keep=name age height); SET sunny.bclass (where=(age14); RUN; PROC PRINT; RUN; 例例 DATA classm classf; SET sunny.bclass; SELECT (sex); When(男男 ) output classm; When(女女 ) output classf; Otherwise put sex=有有 错错 ; End; Drop sex; RUN; PROC PRINT data=classm; RUN; PROC PRINT data=classf; RUN; 例例 (用用 SET和和 OUTPUT语句拆分数据集语句拆分数据集 ) SAS 2.4 SAS数据集数据集 的加工、合并及拼接 2.4.1 SAS表达式及数据步常用语句 2.4.2使用数据步加工 SAS数据集 2.4.3 SAS数据集的合并与拼接 2.4.4使用使用 SQL Query窗加工 SAS数据集 SAS SAS数据集的排序数据集的排序 事先对 SAS数据集进行排序,是其它 SAS程序通 过使用 BY语句 直接调用该数据集及对数据集进 行合并或串接的前提。 PROC SORT OPTIONS ; BY DESCENDING 变量名列表 ; END; 2.4 SAS数据集的加工、合并及拼接 对对 SORT 过程语句的说明过程语句的说明 q选项 OPTIONS 可为: DATA=数据集 指出要排序的数据集名,缺省表示 使用最近的 SAS数据集; OUT=数据集 规定输出数据集名,缺省表示用排 序后的数据集替代原数据集; NODUPLICATES 在排序后检查和删除相邻的重复 观测; qBY语句中的 DESCENDING表示对其后的变量值按降 序排列,缺省表示升序 (ASCENDING)。 SAS数据集的排序数据集的排序 PROC SORT DATA=SUNNY.BCLASS OUT=ABC ; BY DESCENDING AGE ; PROC PRINT ; RUN; SAS数据集的排序数据集的排序 例例 SAS 合 并 或 串 接 S A S 数 据 集 SAS数据集数据集 SAS数据集数据集 A B SAS数据步数据步 数据串接数据串接 数据并接数据并接 A A B B 2.4 SAS数据集的加工、合并及拼接 用用 SET语句串接语句串接 SAS数据集数据集 Concatenate方式方式 : DATA 新 数据集 ; SET 输入数据集 1 输入数据集 2 ; RUN; Interleave方式方式 : DATA 新 数据集 ; SET 输入数据集 1 输入数据集 2 ; BY by-variables ; RUN; (需事先对数据集进行排序)(需事先对数据集进行排序) 串接串接 SAS数据集数据集 NUM VARA 1 2 5 A1 A2 A3NUM VARB3 4 6 B1 B2 B3 NUM VARA VARB 12 53 46 A1A2 A3 B1 B2B3 A1 : COMBINE: B1: DATA COMBINE; SET SUNNY.A1 SUNNY.B1; PROC PRINT; RUN; ( Concatenate) (直接上下合并)(直接上下合并) NUM VARA 1 2 5 A1 A2 A3NUM VARB3 4 6 B1 B2 B3 NUM VARA VARB 12 34 56 A1A2 A3 B1B2 B3 A1 : COMBINE: B1: ( Interleave)串接串接 SAS数据集数据集 DATA COMBINE; SET SUNNY.A1 SUNNY.B1; BY NUM; PROC PRINT; RUN; (交错合并)(交错合并) NUM VAR 1 2 2 3 C1 C2 C3 C4 NUM VAR 2 3 3 D1 D2 D3 NUM VAR 12 22 33 3 C1C2 C3D1 C4D2 D3 C1 : COMBINE: D1 : DATA COMBINE; SET SUNNY.C1 SUNNY.D1; BY NUM; PROC PRINT; RUN; ( Interleave)串接串接 SAS数据集数据集 (交错合并)(交错合并) DATA SCORE1; INPUT NAME $ SEX $ MATH PHY ENG CHE; CARDS; CHEN F 80 85 90 65 LI M 75 89 60 75 LIN M 81 83 67 80 ; DATA SCORE2; INPUT NAME $ SEX $ MATH PHY; CARDS; ZHANG M 78 89 WANG F 95 87 ; DATA SCORE; SET SCORE1 SCORE2; PROC PRINT; RUN; 例例 DATA new; set classm(in=male) classf (in=female); if male=1 then sex=男男 ; if female=1 then sex=女女 ; RUN; PROC PRINT ; RUN; (把拆分后的数据集合并)把拆分后的数据集合并)例例 用来指示每一个观测来源的数据用来指示每一个观测来源的数据 集,集, 变量取变量取 1表示观测来自此数据表示观测来自此数据 集,取集,取 0表示非来自此数据集表示非来自此数据集 MERGE ( 一对一合并一对一合并 ) DATA 新 数据集 ; MERGE 输入数据集 1 输入数据集 2 ; RUN; DATA 新 数据集 ; MERGE 输入数据集 1 输入数据集 2 ; BY by-variables ; RUN; 用用 MERGE 语句并接语句并接 SAS数据集数据集 MATCH MERGE( 匹配合并匹配合并 ) 需事先对数据集进行排序需事先对数据集进行排序 NUM VARA 1 2 3 A1 A2 A3 NUM VARB 1 2 4 B1 B2 B3 NUM VARA VARB 12 4 A1A2 A3 B1B2 B3 A2: COMBINE: B2: DATA COMBINE ; MERGE SUNNY.A2 SUNNY.B2; PROC PRINT; RUN; MERGE ( 一对一合并一对一合并 ) 用用 MERGE 语句并接语句并接 SAS数据集数据集 NUM VARA 1 2 3 A1 A2 A3 NUM VARB 1 2 4 B1 B2 B3 NUM VARA VARB1 23 4 A1A2 A3 B1B2 B3 A2: COMBINE: B2 : DATA COMBINE ; MERGE SUNNY.A2 SUNNY.B2; BY NUM; PROC PRINT; RUN; MATCH MERGE( 匹配合并)匹配合并) 方法方法 1 用用 MERGE 语句并接语句并接 SAS数据集数据集 NUM VARA 1 2 3 A1 A2 A3 NUM VARB 2 2 4 B1 B2 B3 NUM VARA VARB1 22 34 A1A2 A2A3 B1B2 B3 A2 : COMBINE: C2: MATCH MERGE( 匹配合并)匹配合并) 方法方法 1 用用 MERGE 语句并接语句并接 SAS数据集数据集 DATA COMBINE ; MERGE SUNNY.A2 SUNNY.C2; BY NUM; PROC PRINT; RUN; DATA PERSON ; INPUT NUMBER NAME $ SEX $ AGE ; CARDS; 10001 ZHANG F 20 10003 LI M 22 10002 WANG M 20 10001 LIN F 21 ; PROC SORT; BY NUMBER; DATA LANGUAGE; INPUT NUMBER LANGUAGE $ SCORE; CARDS; 10001 ENGLISH 90 10002 JAPANESE 85 1001 RUSRIAN 79 ; PROC SORT; BY NUMBER; DATA RESULT; MERGE PERSON LANGUAGE; BY NUMBER; PROC PRINT ; RUN ; 例例 由由 Assist提供的菜单实现数据的串接或并接提供的菜单实现数据的串接或并接 进入进入 Assist 主菜单主菜单 Data MGMT Combine 实实 现现 串串 接接 实实 现现 并并 接接 Match Merge的的 两种方法两种方法 由由 Assist提供的菜单实现数据的串接或并接提供的菜单实现数据的串接或并接 SAS 2.4.1 SAS表达式及数据步常用语句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论