SAS基础编程初步教学PPT.ppt_第1页
SAS基础编程初步教学PPT.ppt_第2页
SAS基础编程初步教学PPT.ppt_第3页
SAS基础编程初步教学PPT.ppt_第4页
SAS基础编程初步教学PPT.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1.3 sas编程初步 1.3.1 sas程序概述 1.3.2 数据步简介 1.3.3 过程步简介,1.3.1 sas程序概述 1. 数据步与过程步(程序结构) sas程序中的语句通常属于以下两类程序步之一: 数据步(data step): 以data语句开头,建立sas数据集 . 过程步(proc step): 以proc语句开头,对数据步所建立的sas数据集,完成某个特定的计算、分析或呈现工作等 . 一个sas程序就是由数据步、过程步或两者的任意组合来构成。每一个程序步通常由若干语句(statements)组成。,2. 书写规则 一个sas语句有两个重要特征: 由sas关键词(keyword)开始; 总是以分号“;”结束。,说明: 1) sas语句是自由格式的:一个语句可以由几行组成,可以在任一列开始和结束,几个语句可以在同一行内。sas每看到一个分号,就将其以前、上一个分号以后的所有字符当作一条语句来处理,而不管它们处在多少个不同的行中(如程序例中的二三两行为一个语句)。 2) sas语句对字母的大小写不敏感,可以根据个人习惯决定字母的大写或小写。 3) sas语句中的词之间用空格或特殊符号分隔。,3. sas程序中的注释 在sas程序中可以加入注释,其作用是对程序进行说明,可起到便于理解和阅读的作用,运行时不被执行。注释的书写格式有两种:1)用/*和*/在两端界定注释,这种注释一般出现在命令之后,可以占多行。另一种注释是把以星号开头的行作为注释。一般出现在命令之前。下面是一个注释的例子: data c200501; /* 生成2005级1班考试成绩的数据集 */ *生成2005级1班考试成绩的数据集 data c200501;,4. sas程序的提交 sas程序在editor窗口中编写,欲使sas运行所编写的程序,就需要“提交(submit)”程序: f8键或选择菜单项“run”“submit”或点击 。 每一个欲运行的数据步或过程步程序应以run语句结束,否则,不会被执行。 执行的结果根据sas程序的不同而有所不同: 通常运行的程序包括过程步的话,它们会创建报表形式的输出(output窗口)。 有些过程步执行诸如排序或数据处理过程,除了在log窗中的记录之外,不产生可见的输出结果。,5. 基本的sas程序例,data c200501; input name $ sex $ math chinese; cards; 李家富 男 92 98 张丽萍 女 89 106 王春雷 男 86 90 刘刚 男 98 109 张颍 女 80 110 ; proc print data = c200501; proc means data = c200501 mean; var math chinese; run;,程序提交sas系统执行后 1. 信息记录显示在log窗口; (显示所做程序的信息, 出错信息等) 2. 过程步的执行结果输出在 output窗口 。,例1.,6. 基本的sas程序例,the sas system 13:44 monday, may 5, 2008 1 obs name sex math chinese 1 李家富 男 92 98 2 张丽萍 女 89 106 3 王春雷 男 86 90 4 刘刚 男 98 109 5 张颍 女 80 110,程序提交后output窗口显示如下:,the means procedure 2 variable mean - math 89.0000000 chinese 102.6000000 -,print过程步输出结果,means过程步输出结果,1.3.2 数据步简介 输入数据的方式 利用数据步建立sas数据集,其输入数据的方式为:在定义变量名语句之后将数据进行排列; 数据步一般语法为:,data 数据集名 ; input 变量名1 变量名2 变量名k; cards ; d11 d12 d1k d21 d22 d2k 数据行 . ; run;,data f2005; input number name $; cards; 200541001 zhao 200541002 qian 200541003 sun 200541004 li ; run;,例如:,一、数据步语句 1. data语句(给sas数据集起名,产生sas数据文件) 一般形式:,data 数据集名 ;,数据集名 若使用一阶的命名方式,如前例中 data c200501; , 则产出数据文件work.c200501, 是暂存性的sas数据文件,在关闭sas系统时,自动被删除. 若使用二阶的命名方式,如 data exec.c200501; ,则产出永久性的sas数据文件exec.c200501,存储于逻辑库exec中,在关闭sas系统时不会被删除.,data语句中使用 数据集选项 举例: 1. data one(drop=y); /*在sas数据集one中去掉变量y*/ 2. data one(keep=x1 x2); /*在sas数据集one中只保留变量x1与x2*/ 3. data one(rename=(x1=u x2=v); /*把one中变量x1改名为u, x2改名为v */,临时逻辑库,2.input语句 (定义变量名及变量的类型,指定位置或排列情况),以下介绍input语句的书写格式 自由格式输入法的一般形式:,input 变量名 变量名 ;,对字符型变量必要,例2,data one input name$ sex$ phone room; cards ; tan m401 liu f203 zao m301 wang m301 li f204 ; run;,input 变量名 变量名 ;,自由格式输入法(不用双尾符)读数据时,在一行中多余的变量值会被弃掉,如缺少接着读下一行.,双尾符在input语句的最后位置时, 在一行中一个记录(观测)以外的变量值不会被弃掉而是(作为下一个记录)接着读.换句话说,输入数据时一行里可以输入多个记录。,考察用双尾符和不用双尾符时输出结果差异?, (双尾符),data ex; input x y ; cards ; 1 2 3 4 5 6 7 8 9 10 ; proc print; run;,原数据 x y 2 4 6 8 9 10,不用双尾符时 系统运行结果: obs x y 1 2 2 4 5 3 7 8,例4.,data语句:,data 数据集名 ;,input 变量名 ;,自由格式输入法的一般形式:,input语句:,3.cards 语句 (写在数据行之前,一定要与input语句配合使用),cards; 数据行 ;,cards语句必须是data步的最后一个语句,后面的每个 数据行长度为80列.当遇到某行开头有分号 ; 时, sas系统确认是数据行结束.,数据行 cards 语句之后根据input语句的格式输入数据行,每个记录应与input语句中变量名一一对应.,1.3.3过程步简介 过程步对数据步所建立的sas数据集,完成某个特定的计算、分析或呈现工作等。 1. sas过程步的一般形式,proc 过程名 ; run ;,例如,proc print data=c200501; run;,2. 过程步常用语句 var语句、by语句、 class语句、 output语句。 (1) var语句 var语句在很多过程中用来指定分析变量,其格式为:,var 变量名1 变量名2 . 变量名n ;,proc print data = c200501 ; var sex math; run; proc means data = c200501 ; var math; run;,例如:,(2) by语句和class语句,by语句在过程中一般用来指定一个或几个分类变量, 根据这些分类变量值把观测分组,然后对每一组观测 分别进行本过程指定的分析。其格式为:,by 变量名1 变量名2 . 变量名n ;,在使用带有by语句的过程步之前一般先用sort过程 对数据集按by变量排序。有些过程步可使用class语句指定分类变量,此时不需要事先按分类变量排序。,例如:,proc sort data = c200501 ; by sex; run; proc print data = c200501 ; by sex; run;,(3) output语句,output out =新数据集名 ;,其中用out= 给出要生成的结果数据集的名字,用 “关键字=变量名”的方式指定输出哪些结果(关键字是如means 过程中的mean,var,std那样的要输出的结果名),等号后面的变量名是这些结果在输出数据集中用户给的名字。,例如:,proc means data = c200501; var math; output out=c2005mean mean=junzhi ; run; proc print data=c2005mean; run;,output语句用来给出运行结果的输出数据集名,其格式为:,sas过程中常有的语句,(1)proc:指定使用的sas过程; (2)var:规定要分析的变量列表; (3)model:规定在模型中的因变量与自变量; (4)weigh:规定观察值相应权数(重要性); (5)freq:规定观察值出现的频数(次数);,(6)id:规定一个或几个变量,它们的值在打印输出中用来代替观察号; (7)class:在分析中识别分类变量; (8)by:对由by定义的几组观测值分别分析; (9)output:给出该过程产生的输出数据集的信息; (10)format:规定输出变量值格式; (11)label:把说明性标记同变量名联系起来;,3.两个基本sas过程:,print过程(打印数据集.在output 窗上的打印) sort过程(数据集排序),数据步(data step)只是建立sas数据集, 统计量的计算、分析、作图、输出报表等工作 都需要通过过程步(proc step)进行。,1) 打印过程 print其语法格式:,例3.(1)输出sas数据集c200501,但不打印观测序号:,(2) 只打印c200501中部分变量name和math:,proc print data=c200501; var name math ; run;,proc print data=c200501 noobs ; run;,(3) 打印c200501,其中变量名取临时标签: name:姓名;sex:性别;math:数学;chineses:中文。,proc print data=c200501 label; label name=姓名 sex=性别 math=数学 chineses=中文 ; run;,proc print ; /*指定要列出的变量并指定顺序*/ /*输出指定变量的所有观测之和*/ /*可以选一个子集来列出*/ run;,给变量附加标签的选项,不打印观测序号的选项,proc print data=c200501; where sex=男; run;,proc print ; /*指定要列出的变量并指定顺序*/ /*输出指定变量的所有观测之和*/ /*可以选一个子集来列出*/ run;,proc print data=c200501 noobs; sum math ; run;,(4)输出c200501中变量math观测值的总和:,(5)输出c200501中男生的数据:,输出结果,2)数据排序过程 sort 在sas过程中用by语句可以把观测分类后进行处理,但在此之前需要先用sort过程排序。sort过程可以把数据集按某一个或若干个变量的次序进行排序。其语法格式为:,proc sort ; by 要排序的变量名; run;,如用此选项按降序排列,否则按升序排列,proc sort data=c200501; by sex; run; proc print data=c200501; by sex; run;,在pr

温馨提示

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

评论

0/150

提交评论