收藏 分享(赏)

章sas系统的数据管理2008PPT课件.ppt

上传人:微传9988 文档编号:3357777 上传时间:2018-10-18 格式:PPT 页数:91 大小:916.50KB
下载 相关 举报
章sas系统的数据管理2008PPT课件.ppt_第1页
第1页 / 共91页
章sas系统的数据管理2008PPT课件.ppt_第2页
第2页 / 共91页
章sas系统的数据管理2008PPT课件.ppt_第3页
第3页 / 共91页
章sas系统的数据管理2008PPT课件.ppt_第4页
第4页 / 共91页
章sas系统的数据管理2008PPT课件.ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

1、第二章 SAS系统的数据管理,2.1 SAS系统对数据的管理 2.2 SAS数据集的浏览和编辑 2.3 SAS数据集的建立 2.4 SAS数据集的加工、合并与拼接,2.1 SAS系统对数据的管理,数据 直接输入,流行 数据库,其它 文件格式,SAS数据集,是一种由SAS系统创建和管理的有特殊结构的SAS文件,存储在被称为SAS数据库 的文件集中,SAS数据集(Data sets)是一种关系型结构,包括描述部分和数据部分,描述部分 包含了一些关于数据属性的信息,(View columns),(Properties),数据部分 是由数据构成的矩形表,观测1 观测2 观测3,变量(Variable)

2、,对缺失值(Missing Value)的处理:,字符型变量用空格表示 数值型变量用句号.表示,相当于 记录或行,相当于域或字段,SAS数据库 存储了SAS数据集( SAS DATA)和SAS目录册( SAS CATALOG)等SAS专用文件,从而使SAS系统能够在程序中指明并查阅文件。 在Windows操作系统下,SAS数据库是一种以路径为基础的组织方式;每个SAS数据库均以库标记 来识别。,指系统设置、声音、图象等不能表示成行列结构表格形式的数据,SAS数据集采用两级命名方式定名:,Libname . SAS-filename (库标记 . 文件名),如:名为 DST2 . FISH的数据

3、集,SAS8.2以上版本提供了直接管理SAS数据库及里面文件的SAS管理器(SAS Explorer)窗口,进入SAS管理器窗口的方法:,单击工具栏中的图标 进入; 或:从下拉菜单View中选Explorer。,也可通过其它窗口来实现对数据库的管理:,用LIBNAME命令进入Libname窗口; 用DIR命令进入Dir窗口; 用VAR命令进入Var窗口(默认为显示临时库中数据集的属性) 。,是否显示库内文件的细节,控制管理器窗口的树形显示是否打开,返回到程序编辑窗口界面,SAS数据库的设定,在SAS管理器窗口为当前活动窗口的前提下,从下拉菜单File中选New命令; 或:点击工具栏中的图标 。

4、,进入建立新库对话框 :,也可使用LIBNAME语句指定SAS库标 :,第二章 SAS系统的数据管理,2.1 SAS系统对数据的管理 2.2 SAS数据集的浏览和编辑 2.3 SAS数据集的建立 2.4 SAS数据集的加工、合并与拼接,2.2 SAS数据集的浏览和编辑,在SAS系统中,浏览和编辑SAS数据集必须先设定SAS数据库,将要浏览和编辑的数据集存放在已设定的SAS数据库中。,浏览SAS数据集的描述部分:,浏览与编辑SAS数据集的数据部分:,进入Viewtable窗口:,点击图标 进入库管理对话窗,双击欲选择的数据集,在view下拉菜单中,选择form view 或 table view

5、,浏览与编辑SAS数据集的数据部分:,第二章 SAS系统的数据管理,2.1 SAS系统对数据的管理 2.2 SAS数据集的浏览和编辑 2.3 SAS数据集的建立 2.4 SAS数据集的加工、合并与拼接,2.3 SAS数据集的建立,建立SAS数据集的各种途径,用VIEWTABLE新建数据集,启动VIEWTABLE窗口,在Viewtable窗口内选中变量后,从弹出的菜单中选Column Attributes,根据提示对变量的属性加以规定;但对格式和其它属性无特殊要求的也可先输入数据,而后设定各个变量的属性。,设定变量属性,数据集变量的属性描述:,Name 变量名字,由字母或下划线开始, 且不超过8

6、个字符或数字 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”小数部

7、分的长度。,用VIEWTABLE新建数据集设定变量属性,SAS数据集数据值的内部存放格式并不一定与该数据值的输入和输出格式一致,12234.12,comma8.2,dollar8.2,8.2,12234.12,12234.12,12234.1,12234,12234.1234,用VIEWTABLE新建数据集设定变量属性,20OCT97,ddmmyy8,mmddyy8,yymmdd8,实际存储数值 13807,日期的输入、输出格式:,20/10/97,10/20/97,20/10/97,97-10-20,日期在SAS内部以数值型变量存储,这个变量的值等于该日期距离1960年1月1日的天数,使用I

8、mport菜单由文本文件读入,从SAS下拉菜单选择:,在Windows操作系统中,外部文件是指文本文件(格式为 .dbf、.xls、.wk1、.wk3等); 对一些用户规定格式的文件可提供EFI(External File Interface外部文件界面)。,使用数据步(DATA STEP)新建数据集,自文本数据文件生成SAS数据集的一般形式:,DATA SAS数据集名; ATTRIB语句设定变量属性; INFILE 文件名 FIRSTOBS=n1 OBS=n2;INPUT 语句; 其他SAS语句; RUN;,DATA步中设定变量属性的语句:,Length 还决定了变量在数据集中的次序,使用数

9、据步(DATA STEP)新建数据集,INPUT语句,INPUT设定1设定n|;,使用数据步(DATA STEP)新建数据集,INPUT语句-List格式(自由格式),INPUT 变量名 $:输入格式变量名 $:输入格式;,使用数据步(DATA STEP)新建数据集,INPUT语句-Column格式,INPUT 变量名 $始列-终列变量名 $始列-终列;,使用数据步(DATA STEP)新建数据集,INPUT语句-Formatted格式,INPUT 指针 变量名 输入格式 指针 变量名 输入格式 ;,使用数据步(DATA STEP)新建数据集,data CHILD;infile “C:SUNN

10、Y例题数据资料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 $ ,第二章 SAS系统的数据管理,2.1 SAS系统对数据的管理 2.2 SAS数据集的浏览和编辑 2.3 SAS数据集的建

11、立 2.4 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;* 幂运算 rais

12、e=x*y;| 字符串拼接 str=str1|str2;,比较 运算符,运算符 符号 意义,逻辑 运算符,SAS运算符包括算术、比较和逻辑等运算符。,SAS函数返回由它的参数计算得到的结果,SAS提供了远多于一般程序语言的标准函数,主要包括数学函数、数组函数、字符函数、日期和时间函数、分布密度函数和分布函数、分位数函数、随机数函数、样本统计函数等,它们可以直接用于数据步计算中。,SAS函数返回由它的参数计算得到的结果,DATA ABC;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

13、, 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) 三角函

14、数,分别求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

15、中所有大写字母转换为小写字母后的结果; 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

16、)由SAS日期值d、小时h、分钟m、秒s生成SAS时间值; 等等,DATA步中的常用语句,PUT语句输出语句 SET语句读取观测语句 ATTRIB语句设定变量属性 赋值语句计算SAS表达式,给变量赋值 DROP语句删除变量语句 KEEP语句保留变量语句 IF语句条件语句 DO-END语句循环语句 DELETE语句删除语句 OUTPUT语句输出到数据集语句 COMMENT语句注释语句 ARRAY语句数组语句,PUT语句:用来显示输出结果,输出结果直接显示在LOG窗口中,DATA步中的常用语句,例,DATA abc;X=0.5;Y=sin(x);PUT “Sine funtion value of

17、” x “is” y;PUT x= y=;PUT x 10-20 .6 y 30-40 .6; RUN;,DATA步中的常用语句,SET语句:把一个已有数据集复制到一个新数据集,同时还可以进行修改,DATA步中的常用语句,ATTRIB语句:用来指定变量的类型、标签、长度、输入输出格式等变量属性,DATA步中的常用语句,例,DATA sales;ATTRIB name LABEL=“姓名” LENGTH=$10date LABEL=“日期” FORMAT=yymmdd10. INFORMAT=yymmdd10. amount LABEL=“金额” FORMAT=10.2; INPUT name

18、$ 1-10 date amount;Cards;张鹏 2003/03/18 2000李志明 2003/05/23 1500王敏 2003/09/01 3000; RUN; PROC PRINT NOOBS LABEL; RUN;,赋值语句:用于计算一个SAS表达式,并将表达式的值赋给变量,DATA步中的常用语句,条件语句的一般形式为:,IF 条件表达式 THEN 可执行语句;ELSE 可执行语句(不是必须的);,条件表达式主要包含操作数和操作符:,DATA步中的常用语句,DO-END语句:在DO后面直到END语句之前的所有语句作为一个单元(称为一个DO组)被执行,任意多个DO组能够被嵌套执行

19、。,; If X5 then do;Y=X10 ;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系统输出当前的观测

20、或DO组中的变量到正被创建的数据集中,DATA步中的常用语句,COMMENT语句为注释语句,可放在SAS过程的任何地方用来说明这个过程的目的,如解释说明程序中的一些独特的程序段,或介绍整个程序等。,DATA步中的常用语句,*循环 DO 语句;(或:/*循环 DO 语句*/) data _null_ ;do I=1 to 6 by 2 ;put I= ;end; run;,数组:SAS过程中使用同一个名字称呼,用下标来区分的合在一起的同为数值型或同为字符型的一组变量,数值型数组,ARRAY 数组名(维数说明) 数组元素名列表(初始值表);,字符型数组,ARRAY 数组名(维数说明)$ 元素长度说

21、明 数组元素名列表(初始值表);,数组: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;,正态分布随机数函数,2.4 SAS数据集的加工、合并及拼接,2.4.1 SAS表达式及数据步常用语句 2.4.2使用数据步加工SAS数据集 2.4.3 SAS数据集的合并与

22、拼接 2.4.4使用SQL Query窗加工SAS数据集,加工SAS数据集 (增改删数据集中的变量和记录),2.4 SAS数据集的加工、合并及拼接,使用数据步加工SAS数据集,增改删数据集中的变量和记录,选择变量,在DATA语句中用选项 DROP=和 KEEP=在SET语句中用选项 DROP=和 KEEP= 在DATA步中加入 DROP语句 KEEP语句,其一般形式为:DATA 数据集(DROP(或KEEP)=变量序列);SET 数据集(DROP(或KEEP)=变量序列);,使用数据步加工SAS数据集,选择观测,在DATA语句中用选项 WHERE= 在SET语句中用选项 WHERE= 在SET

23、语句中用选项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 (ke

24、ep=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;,2.4 SAS数据集的加工、合并及拼接,2.4.1 SAS表达式

25、及数据步常用语句 2.4.2使用数据步加工SAS数据集 2.4.3 SAS数据集的合并与拼接 2.4.4使用SQL Query窗加工SAS数据集,SAS数据集的排序,事先对SAS数据集进行排序,是其它SAS程序通过使用BY语句直接调用该数据集及对数据集进行合并或串接的前提。,PROC SORT OPTIONS ;BY DESCENDING变量名列表 ; END;,2.4 SAS数据集的加工、合并及拼接,SAS数据集的排序,PROC SORT DATA=SUNNY.BCLASS OUT=ABC ;BY DESCENDING AGE ; PROC PRINT ;RUN;,SAS数据集的排序,例,合

26、并或串接SAS数据集,2.4 SAS数据集的加工、合并及拼接,用SET语句串接SAS数据集,(需事先对数据集进行排序),串接SAS数据集,A1:,COMBINE:,B1:,DATA COMBINE; SET SUNNY.A1 SUNNY.B1; PROC PRINT; RUN;,(Concatenate),(直接上下合并),A1:,COMBINE:,B1:,(Interleave),串接SAS数据集,DATA COMBINE; SET SUNNY.A1 SUNNY.B1; BY NUM; PROC PRINT; RUN;,(交错合并),C1:,COMBINE:,D1:,DATA COMBINE

27、; 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 65LI M 75 89 60 75LIN M 81 83 67 80; DATA SCORE2;INPUT NAME $ SEX $ MATH PHY;CARDS;ZHANG M 78 89WANG F 95 87; DATA SCORE;SET SCORE1 SCORE2; PROC PRINT;

28、 RUN;,例,DATA new;set classm(in=male) classf (in=female);if male=1 then sex=男;if female=1 then sex=女; RUN; PROC PRINT ; RUN;,MERGE (一对一合并),DATA 新数据集;MERGE 输入数据集1 输入数据集2 ; RUN;,DATA 新数据集;MERGE 输入数据集1 输入数据集2 ; BY by-variables ; RUN;,用MERGE 语句并接SAS数据集,A2:,COMBINE:,B2:,DATA COMBINE ;MERGE SUNNY.A2 SUNNY.

29、B2; PROC PRINT; RUN;,MERGE (一对一合并),用MERGE 语句并接SAS数据集,A2:,COMBINE:,B2:,DATA COMBINE ;MERGE SUNNY.A2 SUNNY.B2; BY NUM; PROC PRINT; RUN;,MATCH MERGE(匹配合并)方法1,用MERGE 语句并接SAS数据集,A2:,COMBINE:,C2:,MATCH MERGE(匹配合并)方法1,用MERGE 语句并接SAS数据集,DATA COMBINE ;MERGE SUNNY.A2 SUNNY.C2; BY NUM; PROC PRINT; RUN;,例,由Assi

30、st提供的菜单实现数据的串接或并接,Match Merge的两种方法,由Assist提供的菜单实现数据的串接或并接,2.4.1 SAS表达式及数据步常用语句 2.4.2使用数据步加工SAS数据集 2.4.3 SAS数据集的合并与拼接 2.4.4使用SQL 语言查询SAS数据集,2.4 SAS数据集的加工、合并及拼接,2.4.4使用SQL 语言查询SAS数据集,PROC SQL;SELECT NAME, HEIGHT, WEIGHTFROM SUNNY.BCLASSWHERE SEX=男ORDER BY HEIGHT DESC;RUN ;,例,使用SQL Query窗加工SAS数据集,进入SQL

31、 Query 窗:,(6.12版),由SQL Query 窗中的各下拉菜单及选项可实现如下功能:,对字段(变量)加标签(Label)、修改输出格式(Format)、排序(变量的显示次序)等 显示、存储查询结果等 根据查询结果新建数据集 选择观测值、对观测值排序等 新建变量,思考与练习,用SAS数据步列出10000以下的素数,写出程序。 生成t分布的双侧分位表,水平取0.001、0.002、0.005、0.01、0.02、0.05、0.10、0.20,自由度取1-100,分位数精确到小数点后3位;表格应为行、列对齐的形式,并有列标题;写出生成这样的表格并存放到一个文本文件中的SAS程序。(提示:

32、最好用数组命令array来完成,自由度为df的t分布的左侧p分位数的函数形式为tinv(p,df).) 写出计算从自己生日到2003年初经过的天数的程序。,下表为某邮购服务部的部分顾客记录: 姓名 性别 地区 日期 金额 章文 男 华东 1996-3-20 1099 王国铭 男 华东 1996-5-19 39 童子敏 女 华北 1996-1-5 986 刘念新 男 东北 1997-10-1 3581 李思今 女 华北 1997-4-1 659 关昭 女 东北 1996-11-5 358 赵霞 女 东北 1998-9-6 2010 用数据步把此数据输入到SAS数据集; 用程序找出男性顾客购买金额超过1000的那些人; 把数据拆分为包含姓名、性别、地区的一个数据集和包含姓名、日期、金额的一个数据集; 用MERGE和BY语句合并上一步拆开的两个数据集。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医学治疗 > 基础医学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报