《统计软件及应用PPT.pptx》由会员分享,可在线阅读,更多相关《统计软件及应用PPT.pptx(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、会计学1统计软件统计软件(run jin)及应用及应用第一页,共84页。SAS程序的输入程序的输入(shr)规则规则qq每个语句常以开始的关键词称呼,用分号每个语句常以开始的关键词称呼,用分号“;”“;”表示语句的结束;表示语句的结束;qq输入字母可用大、小写或混用,语句中每输入字母可用大、小写或混用,语句中每个字(个字(word word)及数字间至少以一个及数字间至少以一个(y(y)空格分隔;空格分隔;qq语句可以在任一列开始和结束,词间可任语句可以在任一列开始和结束,词间可任意加入空格和换行,每行可输入多个语句。意加入空格和换行,每行可输入多个语句。第2页/共84页第二页,共84页。SA
2、S的主要的主要(zhyo)功能功能n n获取数据获取数据(shj)(shj)n n管理数据管理数据(shj)(shj)n n分析数据分析数据(shj)(shj)n n表示数据表示数据(shj)(shj)n n应用软件开发应用软件开发第3页/共84页第三页,共84页。SAS系统对数据系统对数据(shj)的管理的管理数据数据数据数据直接直接直接直接(zhji)(zhji)(zhji)(zhji)输入输入输入输入流行流行流行流行(lixng)(lixng)(lixng)(lixng)数据库数据库数据库数据库其它其它其它其它文件格式文件格式文件格式文件格式SASSAS数据集数据集SASSASSASSA
3、S应用程序应用程序应用程序应用程序是一种由是一种由SASSAS系统创建和系统创建和管理的有特管理的有特殊结构的殊结构的SASSAS文件文件存储在被称存储在被称为为SASSAS数据数据库库 的文件的文件集中集中SASSAS系统只能对由系统只能对由SASSAS建立的数据文件直建立的数据文件直接进行统计分析。接进行统计分析。第4页/共84页第四页,共84页。SAS数据库数据库n n在在SAS SAS 系统中使用的各种数据文件系统中使用的各种数据文件(包括包括dbf/db2dbf/db2等外部数据文件等外部数据文件)可以分类组织起可以分类组织起来,冠以不同的逻辑别名来,冠以不同的逻辑别名数据库名。也数
4、据库名。也就是说,数据库其实是比数据集高一级的就是说,数据库其实是比数据集高一级的目录文件夹。目录文件夹。n n在在WindowsWindows操作系统中,一个数据库通常对操作系统中,一个数据库通常对应为一个或多个文件夹中的若干数据文件。应为一个或多个文件夹中的若干数据文件。n n目的:在各种操作系统下,目的:在各种操作系统下,SASSAS对数据文件对数据文件操作的环境相对统一操作的环境相对统一,都可通过数据库方便都可通过数据库方便(fngbin)(fngbin)地访问数据文件。地访问数据文件。第5页/共84页第五页,共84页。SAS数据库数据库SASSAS数据库数据库 存储了存储了SASSA
5、S数据集(数据集(SAS DATA SAS DATA)和)和SASSAS目目录册(录册(SAS CATALOG SAS CATALOG)等)等SASSAS专用文件,从而使专用文件,从而使SASSAS系统能够在程序中指明并查阅文件。系统能够在程序中指明并查阅文件。在在WindowsWindows操作系统下,操作系统下,SASSAS数据库是一种以路径为基数据库是一种以路径为基础础(jch)(jch)的组织方式;每个的组织方式;每个SASSAS数据库均以库标记数据库均以库标记 来识别。来识别。又称库逻辑名,是某文又称库逻辑名,是某文件所在路径的别名件所在路径的别名指系统设置、声指系统设置、声音、图象
6、等不能音、图象等不能表示成行列表示成行列(hng(hng li)li)结构表格形结构表格形式的数据式的数据第6页/共84页第六页,共84页。为永久库,其所有文件将被为永久库,其所有文件将被保留,库标记可由用户指定保留,库标记可由用户指定由系统自动指定由系统自动指定由系统自由系统自动指定的动指定的临时库,临时库,结束结束SASSAS后库中的后库中的数据被自数据被自动删除动删除人工设人工设定定第7页/共84页第七页,共84页。SAS数据库的设定数据库的设定(sh dn)在在SASSAS管理器窗口管理器窗口为当前活动窗口的前提下,从下为当前活动窗口的前提下,从下拉菜单拉菜单FileFile中选中选N
7、ewNew命令命令;或:或:点击工具栏中的图标点击工具栏中的图标 。进入进入(jnr)(jnr)建立新库对话框建立新库对话框 :也可使用也可使用LIBNAMELIBNAME语句语句(yj)(yj)指定指定SASSAS库标库标:libname libname 数据库名数据库名 引擎引擎 ;libname libname 数据库名数据库名 (1 );2);如:如:LIBNAME LIBNAME AAAAC:SASC:SAS;(可直接在(可直接在PGMPGM窗口中运行)窗口中运行)第8页/共84页第八页,共84页。SAS数据数据(shj)集集n nSASSAS数据集通常是数据集通常是SASSAS系统
8、操作的对象,也是系统操作的对象,也是数据在数据在SASSAS系统中的存储形式。系统中的存储形式。n nSAS SAS 数据集可以看成是由若干行和若干列组数据集可以看成是由若干行和若干列组成的表格成的表格(矩阵矩阵,关系型数据结构关系型数据结构),),各列可各列可以取不同类型以取不同类型(lixng)(lixng)的值。的值。n nSASSAS数据集是由数据集是由SASSAS系统建立的特有的数据存系统建立的特有的数据存储格式,只能被储格式,只能被SASSAS系统调用。系统调用。n nSASSAS数据集以数据集以.sas7bdat.sas7bdat 为扩展名。为扩展名。第9页/共84页第九页,共8
9、4页。SAS数据数据(shj)集(集(DATA SETS)n n包括描述包括描述(mio sh)(mio sh)部分和数据部分部分和数据部分;n n描述描述(mio sh)(mio sh)部分部分 包含了一些关于数据包含了一些关于数据属性的信息属性的信息n n数据部分数据部分 是由数据构成的矩形表是由数据构成的矩形表在在SASSAS系统中,浏览和编辑系统中,浏览和编辑SASSAS数据集必须先设定数据集必须先设定(sh(sh dn)SASdn)SAS数据库,将要浏览和编辑的数据集存放在已设定数据库,将要浏览和编辑的数据集存放在已设定(sh dn)(sh dn)的的SASSAS数据库中。数据库中。
10、第10页/共84页第十页,共84页。SAS数据数据(shj)集集描述部分描述部分(View columns)(Properties)第11页/共84页第十一页,共84页。SAS数据数据(shj)集集数据数据(shj)部分部分观测观测(gun(gunc)1 c)1 观测观测(gun(gunc)2c)2观测观测(gun(gunc)3c)3VAR1 VAR2 VAR3 VAR4 VAR51234abcd3456abcd56782345bcde4567bcde67893456cdef5678cdef7890变量变量(binling)(binling)(V Variableariable)对对缺失值缺失
11、值(Missing ValueMissing Value)的处理:)的处理:字符型变量用空格表示字符型变量用空格表示字符型变量用空格表示字符型变量用空格表示数值型变量用句号数值型变量用句号数值型变量用句号数值型变量用句号.表示表示表示表示相当相当相当相当于于于于记录记录或行或行相当相当于域于域或字或字段段SAS变量变量只有两种基本类型:只有两种基本类型:数值型数值型(N)和和字符型字符型($或或C);逻辑、时间型逻辑、时间型数据都通过数据都通过数值型数值型来表示。来表示。第12页/共84页第十二页,共84页。观观测测变变 量量第13页/共84页第十三页,共84页。SAS数据集命名数据集命名(m
12、ng mng)方式方式SASSAS数据集采用两级命名方式数据集采用两级命名方式(fngsh)(fngsh)定名:定名:Libname.SAS-filenameLibname.SAS-filename(库标记(库标记(bioj).(bioj).文件名)文件名)如:名为如:名为 DST2.FISH DST2.FISH 的数据集的数据集默认为默认为WORKWORK,即临时数据,即临时数据集只要有数据集名即可集只要有数据集名即可数据集的名字由英文字母、数字、下划线组成,第一个字母必须是数据集的名字由英文字母、数字、下划线组成,第一个字母必须是字母或下划线,名字最多只能有字母或下划线,名字最多只能有8
13、8 个字符;另外在命名时不区分大个字符;另外在命名时不区分大小写。小写。第14页/共84页第十四页,共84页。Examplen n希望把希望把F:My SAS FilesV8new F:My SAS FilesV8new 这个目录这个目录与一个名叫与一个名叫libtest libtest 的数据库联系的数据库联系(linx)(linx)起来,并且将起来,并且将test test 数据集放置在数据集放置在其中。可以在编辑窗口输入如下的程序:其中。可以在编辑窗口输入如下的程序:n nlibname libtest f:my sas libname libtest f:my sas filesv8n
14、ew;filesv8new;n ndata libtest.test;data libtest.test;n ninput code price;input code price;n ncards;cards;n n600381 18600381 18n n600262 16600262 16n n600252 8600252 8n n600009 10600009 10n n600036600036n n;n nrun;run;第15页/共84页第十五页,共84页。是否显示是否显示(xinsh)(xinsh)库库内文件的细节内文件的细节控制控制(kngzh)(kngzh)管管理器窗口的树理器
15、窗口的树形显示是否打形显示是否打开开返回到程序返回到程序编辑窗口编辑窗口(chungku)(chungku)界面界面第16页/共84页第十六页,共84页。SAS数据数据(shj)集的建立集的建立数据存于纸上数据存于纸上(需直接键入)(需直接键入)数据存于文本数据存于文本文件文件数据存于流行数据数据存于流行数据库文件中库文件中用用VIEWTABLE、FSEDIT、FSVIEW编程:用编程:用DATA语句语句用用Import菜单菜单用用SAS/ACCESS第17页/共84页第十七页,共84页。编程方式编程方式(fngsh)建立数据集建立数据集n n采用采用SASSAS编程方式录入实际数据是一种灵活
16、编程方式录入实际数据是一种灵活而有效的手段。尽管用图形界面进行各种而有效的手段。尽管用图形界面进行各种操作已经成为操作已经成为WindowsWindows时代的一种主流模式时代的一种主流模式,但在一些较复杂的、庞大的问题上但在一些较复杂的、庞大的问题上,还是需还是需要要(xyo)(xyo)用编程模式才能方便的给予解决。用编程模式才能方便的给予解决。n n在在SASSAS系统中系统中,我们可以用其两类基本过程之我们可以用其两类基本过程之一的数据步过程来完成对批量数据的录入一的数据步过程来完成对批量数据的录入与管理。与管理。第18页/共84页第十八页,共84页。使用使用(shyng)DATA步新建
17、数据步新建数据集集数据存于纸上数据存于纸上(需直接键入)(需直接键入)编程:用编程:用DATA语句语句数据存于文本数据存于文本文件文件data SAS-data-set;data SAS-data-set;变量属性设定语句变量属性设定语句;infile filename option;infile filename option;input input 变量输入变量输入(shr)(shr)设定;设定;其他其他SASSAS语句;语句;runrun;data SAS-data-set;data SAS-data-set;变量属性设定语句变量属性设定语句;inputinput变量输入变量输入(shr
18、)(shr)设定;设定;其他其他SASSAS语句;语句;cards;cards;原始数据原始数据;runrun;第19页/共84页第十九页,共84页。处理处理(chl)DATA步的全过程步的全过程n nSASSAS系统执行数据步的过程主要分为两个系统执行数据步的过程主要分为两个阶段:阶段:n n编译数据步编译数据步n n语法检查语法检查(jinch),(jinch),代码转换(机器码)代码转换(机器码)n n创建输入缓冲区创建输入缓冲区(存放数据源中的一行记存放数据源中的一行记录录)n n创建一个程序数据向量创建一个程序数据向量PDV(PDV(可暂存数据可暂存数据集的当前一条观测集的当前一条观
19、测)n n创建创建SASSAS数据集的描述部分数据集的描述部分(数据集名称、数据集名称、观测变量个数和变量属性等观测变量个数和变量属性等)n n执行数据步执行数据步第20页/共84页第二十页,共84页。程序程序(chngx)数据向量缓冲器数据向量缓冲器PDVPDVPDV(Program Data VectorProgram Data Vector)来存放当前的一个观测;观测)来存放当前的一个观测;观测数据经处理后存入数据集。这是数据步的主要工作数据经处理后存入数据集。这是数据步的主要工作(gngzu)(gngzu)场所。场所。PDVPDV中包括两个中包括两个(lin)(lin)自动生成的临时变
20、量:自动生成的临时变量:_N_(_N_(记录数据步执行的次数记录数据步执行的次数)和和_ERROR_(_ERROR_(错误标志:错误标志:0 0为无错误为无错误,1,1为发生错误为发生错误)数据步中出数据步中出数据步中出数据步中出现的变量现的变量现的变量现的变量(包包包包括数据集内括数据集内括数据集内括数据集内的变量的变量的变量的变量)第21页/共84页第二十一页,共84页。DATA步执行步执行(zhxng)阶段阶段n n在执行期间,在执行期间,SASSAS系统执行以下步骤:系统执行以下步骤:(除非除非另有指向另有指向)n n1 1)PDVPDV中所有的变量值被初始化为缺失值;中所有的变量值被
21、初始化为缺失值;n n2 2)输入缓冲器据)输入缓冲器据inputinput语句的数据需求语句的数据需求,读读入源数据文件的相应记录行入源数据文件的相应记录行,并写相应的并写相应的数据字段到数据字段到PDV;PDV;n n3 3)每个语句被顺序执行)每个语句被顺序执行,并可修改并可修改PDVPDV形成形成当前观测当前观测;n n4 4)数据步语句一遍执行后)数据步语句一遍执行后,PDV,PDV中的值写入中的值写入数据集数据集;*;*n n5 5)PDVPDV中外部中外部(wib)(wib)变量初始化为确失值变量初始化为确失值,程序流程回到程序流程回到2 2);n n6 6)对数据源文件的每条记
22、录都按上面步骤)对数据源文件的每条记录都按上面步骤执行一次;执行一次;n n7 7)重复以上步骤直到外部)重复以上步骤直到外部(wib)(wib)文件中数文件中数据结束。据结束。第22页/共84页第二十二页,共84页。DATA步的工作步的工作(gngzu)流程流程数据数据(shj)(shj)步开始步开始有未读入的观测有未读入的观测(gunc)(gunc)值吗?值吗?用数据读入语句读入一个观测值用数据读入语句读入一个观测值用其它语句对观测值进行运算或处理用其它语句对观测值进行运算或处理把当前的观测值写入数据集把当前的观测值写入数据集数据集建立完毕,开始下一个数据集建立完毕,开始下一个数据步或过程
23、步数据步或过程步Y YN N第23页/共84页第二十三页,共84页。练习练习(linx)及思考及思考data data a a;put put x=y=z=x=y=z=;input input x yx y ;z=x+yz=x+y ;put put x=y=z=x=y=z=;cards cards;10 2010 20 100 200 100 200 ;run run;第24页/共84页第二十四页,共84页。使用使用(shyng)数据步新建数据数据步新建数据集集直接输入数据直接输入数据生成数据集生成数据集要求:要求:直接输入生成直接输入生成SASSAS数据数据(shj)(shj)集的一般形式:
24、集的一般形式:关键字关键字DATADATA后的数据集名可以省略,这时后的数据集名可以省略,这时SASSAS自动自动生成一个临时数据集名;也可以使用特殊名字生成一个临时数据集名;也可以使用特殊名字_null_null_,表示本数据步不生成数据集。,表示本数据步不生成数据集。说说明明DATA SASDATA SAS数据集名;数据集名;语句设定变量属性;语句设定变量属性;INPUT INPUT 语句;语句;其他其他SASSAS语句;语句;CARDS CARDS;/*/*说明:数据行结束说明:数据行结束(jish)(jish)分分号需另起一行号需另起一行*/*/RUNRUN;第25页/共84页第二十五
25、页,共84页。数据集变量数据集变量(binling)的属性的属性描述描述Name Name 变量名字,由字母或下划线开始变量名字,由字母或下划线开始,且不超且不超 过过3232个字符或数字个字符或数字Type Type 变量类型,变量类型,C C或者或者$代表字符型,代表字符型,N N或者空格代表或者空格代表数值型数值型Length Length 变量长度,缺省为变量长度,缺省为8 8字节字节(z ji)(z ji)(200200)Label Label 变量标签,缺省为变量标签,缺省为4040字节字节(z ji)(256)(z ji)(256)Informat Informat 输入格式名输
26、入格式名w.dw.dFormat Format 输出格式名输出格式名w.dw.d必必须须界界定定Name Name 和和LengthLength这两个这两个(lin)(lin)属性只在新建表格的时才可属性只在新建表格的时才可以修改以修改第26页/共84页第二十六页,共84页。输入输出格式输入输出格式(g shi)类型类型n nSASSAS数据输入数据输入/输出的格式主要有四类:字符输出的格式主要有四类:字符型、数值型、日期时间型、数值型、日期时间(shjin)(shjin)型和用户型和用户自定义型。自定义型。n n输入输出格式的一般形式为输入输出格式的一般形式为n n$格式名格式名 w.d w
27、.dn n$表明为字符型变量的输入输出格式;表明为字符型变量的输入输出格式;n nw.w.指明格式的宽度为指明格式的宽度为w(w(字符数字符数).).对对输入格式就是读入的最大字符数输入格式就是读入的最大字符数,对输出格对输出格式就是变量显示时占据的最大列数;式就是变量显示时占据的最大列数;n nd d在数值型输出时指明显示小数位数在数值型输出时指明显示小数位数,在数值型变量输入时只指明输入整数值中在数值型变量输入时只指明输入整数值中隐含的小数位数。隐含的小数位数。第27页/共84页第二十七页,共84页。几种常用的输入和输出几种常用的输入和输出(shch)格式格式n n字符型格式字符型格式$w
28、.$w.或或$charw.$charw.n n数值输入格式数值输入格式w.d (w.d (若数据中含小数若数据中含小数则则d d无用无用)n n数值输出格式数值输出格式bestw.(wbestw.(w确省值为确省值为12,12,超过宽度超过宽度(kund)w(kund)w则用科学计数法显示则用科学计数法显示)n n数值输入格式数值输入格式commaw.d (commaw.d (可自动除去可自动除去数据串中的逗号、空格、美圆号、横线数据串中的逗号、空格、美圆号、横线,保保留数字、小数点留数字、小数点)n n数值输出格式数值输出格式commaw.d dollarw.d commaw.d dolla
29、rw.d(整数部分每整数部分每3 3位加入逗号位加入逗号,后一格式还要再后一格式还要再加加$于数值前于数值前)第28页/共84页第二十八页,共84页。几种几种(j zhn)常用的输入和输常用的输入和输出格式出格式n n日期输入格式日期输入格式日期输入格式日期输入格式yymmddw.mmddyyw.ddmmyyw.yymmddw.mmddyyw.ddmmyyw.yymmddw.mmddyyw.ddmmyyw.yymmddw.mmddyyw.ddmmyyw.n n日期输出格式日期输出格式日期输出格式日期输出格式yymmddxw.yymmddxw.yymmddxw.yymmddxw.n n其中其中其
30、中其中x x x x指定年、月、日间的分隔符指定年、月、日间的分隔符指定年、月、日间的分隔符指定年、月、日间的分隔符,它是下列字符之一:它是下列字符之一:它是下列字符之一:它是下列字符之一:b(b(b(b(空格空格空格空格)、c c c c(冒号冒号冒号冒号)、d(d(d(d(横线横线横线横线,此为缺省值此为缺省值此为缺省值此为缺省值)、n(n(n(n(无分隔无分隔无分隔无分隔)、p(p(p(p(点号点号点号点号)、s(s(s(s(斜杠斜杠斜杠斜杠)。n n日期输入输出格式日期输入输出格式日期输入输出格式日期输入输出格式 datew.(datew.(datew.(datew.(可转换可转换可转
31、换可转换30MAY200030MAY200030MAY200030MAY2000形式日期形式日期形式日期形式日期)n n时间时间时间时间(shjin)(shjin)(shjin)(shjin)输入格式输入格式输入格式输入格式 timew.timew.timew.timew.时间时间时间时间(shjin)(shjin)(shjin)(shjin)输出格式输出格式输出格式输出格式 timew.d timew.d timew.d timew.dn n实现实现实现实现hh:mm:ss.sshh:mm:ss.sshh:mm:ss.sshh:mm:ss.ss形式时间形式时间形式时间形式时间(shjin)(
32、shjin)(shjin)(shjin)值与值与值与值与SASSASSASSAS数值的转换。数值的转换。数值的转换。数值的转换。n n日期时间日期时间日期时间日期时间(shjin)(shjin)(shjin)(shjin)输入格式输入格式输入格式输入格式 datetimew.datetimew.datetimew.datetimew.输出格式输出格式输出格式输出格式 datetimew.d datetimew.d datetimew.d datetimew.dn n实现实现实现实现ddmmmyy hh:mm:ss.ssddmmmyy hh:mm:ss.ssddmmmyy hh:mm:ss.ss
33、ddmmmyy hh:mm:ss.ss形式日期时间形式日期时间形式日期时间形式日期时间(shjin)(shjin)(shjin)(shjin)值与值与值与值与SASSASSASSAS数值的转数值的转数值的转数值的转换。换。换。换。第29页/共84页第二十九页,共84页。Example:数字数字(shz)的输入与输的输入与输出出SASSAS数据集数据值的内部存放格式数据集数据值的内部存放格式(g shi)(g shi)并不一并不一定与该数据值的输入和输出格式定与该数据值的输入和输出格式(g shi)(g shi)一致一致12234.1212 234.1,comma8.2dollar8.28.21
34、2234.1212234.12输出格式输出格式8.2comma8.2dollar8.2实际存储数值实际存储数值12234.1212234.11223412 234.1234,$12 234.1234,12234.1234输入格式输入格式实际存储数值实际存储数值输入数据输入数据输出数据输出数据$1,234.561234.56dollar8.2第30页/共84页第三十页,共84页。Example:日期日期(rq)的输入与输出的输入与输出20OCT97ddmmyy8mmddyy8yymmdd8输出数据输出数据输出格式输出格式data7ddmmyy8实际实际(shj)(shj)存存储数值储数值1380
35、71380720/10/9710/20/9720/10/9797-10-20日期日期(rq)(rq)在在SASSAS内部以数值型变量存储,这个变量的值等内部以数值型变量存储,这个变量的值等于该日期于该日期(rq)(rq)距离距离19601960年年1 1月月1 1日的天数日的天数输入数据输入数据输入格式输入格式1960,1,1 01960,1,2 11960,2,1 31第31页/共84页第三十一页,共84页。DATA步中设定变量属性步中设定变量属性(shxng)的语句的语句LENGTH LENGTH 变量名变量名s s$长度长度(chngd)(chngd);INFORMAT INFORMAT
36、 变量名变量名s s 输入输入(shr)(shr)格式格式 ;FORMAT FORMAT 变量名变量名s s 输出格式输出格式 ;LABEL LABEL 变量名变量名=字符串输入格式字符串输入格式 ;ATTRIB ATTRIB 变量名变量名 属性列表属性列表 ;注意:注意:Length Length、INFORMATINFORMAT语句不会影响数值变量输入值的实际语句不会影响数值变量输入值的实际长度长度,但可能会截断字符型变量的输入值长度但可能会截断字符型变量的输入值长度第32页/共84页第三十二页,共84页。变量属性变量属性(shxng)语句语句Examplen nlength x y 6
37、z$2;n nlabel x=股票股票(gpio)代码代码 y=股票股票(gpio)类型类型;n ninformat x y dollar7.2 z$2.;n nattrib x y informat=dollar7.2 length=6 label=股票股票(gpio)代码代码 z informat=$2.;n nx=$1,2.55 y=$1,2.34 z=ab第33页/共84页第三十三页,共84页。ExampleDATA SASDATA SAS数据集名;数据集名;语句设定变量属性;语句设定变量属性;INPUT INPUT 语句;语句;其他其他SASSAS语句;语句;CARDS CARDS;
38、/*/*说明说明(shumng)(shumng):数据行结束分:数据行结束分号需另起一行号需另起一行*/*/RUNRUN;data XYZ;attrib name length=$12;input name$&age;cards;Lihua 20 Sun Li-ning 25 ;run;第34页/共84页第三十四页,共84页。Input 语句的基本语句的基本(jbn)输入模输入模式式n n在在SASSAS数据步中,对输入数据步中,对输入(shr)(shr)数据起核心数据起核心作用的是作用的是inputinput语句;根据数据源的格式,语句;根据数据源的格式,inputinput语句可以采用四种
39、基本输入语句可以采用四种基本输入(shr)(shr)模式:模式:n n按列输入按列输入(shr)(shr)(ColumnColumn)n n格式化输入格式化输入(shr)(shr)(FormatFormat)n n自由列表输入自由列表输入(shr)(shr)(ListList)n n命名输入命名输入(shr)(shr)模式(模式(NameName)n n当然当然,对一些形式较复杂的源数据还可采用对一些形式较复杂的源数据还可采用混合模式输入混合模式输入(shr)(shr)。InputInput语句语句(yj)(yj)默认的分隔符为默认的分隔符为空格空格第35页/共84页第三十五页,共84页。Da
40、ta ExampleJustine F 12Justine F 12Bob Chare M 13Bob Chare M 13MIT Boston 100023TsinghuaUniv Beijing 100084字符型数据(shj)中有空格字符(z f)型数据长度超过了8个字符(z f)数据(shj)中包含日期型数据(shj)56-6-13 110067.12.15 120078 10 2 1300891001 140019960101 150020020901 1600第36页/共84页第三十六页,共84页。Data ExampleJustine F 1 2Justine F 1 2Bob
41、M 13Bob M 13数字型数据(shj)中有空格数字(shz)和字符之间有空格数字(shz)含有逗号,括号,美元符号等Justine F-12Bob M 1,3Chare F(13)Mike M$13第37页/共84页第三十七页,共84页。Input语句语句(yj)格式格式INPUTINPUT设定设定(sh dn)1(sh dn)1设定设定(sh dn)n(sh dn)n|;设定的格式:设定的格式:设定的格式:设定的格式:ListList:变量名变量名$输入格式输入格式.Column Column:变量名:变量名$始列始列-|Formatted Formatted:(变量名列表变量名列表)
42、(输入格式输入格式.).)指针:指针:n|+nn|+nNamed Named:变量名:变量名=$始列始列-|变量名变量名=$输入格式输入格式.输入换行控制:输入换行控制:输入换行控制:输入换行控制:不换行等待下一个:不换行等待下一个Input Input 语句语句:形成输出记录时输入也不换行:形成输出记录时输入也不换行为可选项,如果选择$则表示这是一个(y)字符变量。第38页/共84页第三十八页,共84页。DATA步执行步执行(zhxng)阶段阶段n n在执行期间,在执行期间,SASSAS系统执行以下步骤:系统执行以下步骤:(除非除非另有指向另有指向)n n1 1)PDVPDV中所有的变量值被
43、初始化为缺失值;中所有的变量值被初始化为缺失值;n n2 2)输入缓冲器据)输入缓冲器据inputinput语句的数据需求语句的数据需求,读读入源数据文件的相应记录行入源数据文件的相应记录行,并写相应的并写相应的数据字段到数据字段到PDV;PDV;n n3 3)每个语句被顺序执行)每个语句被顺序执行,并可修改并可修改PDVPDV形成形成当前观测当前观测;n n4 4)数据步语句一遍执行后)数据步语句一遍执行后,PDV,PDV中的值写入中的值写入数据集数据集;*;*n n5 5)PDVPDV中外部变量初始化为确失值中外部变量初始化为确失值,程序流程序流程回到程回到2 2);n n6 6)对数据源
44、文件的每条记录都按上面)对数据源文件的每条记录都按上面(shng min)(shng min)步骤执行一次;步骤执行一次;n n7 7)重复以上步骤直到外部文件中数据结束。)重复以上步骤直到外部文件中数据结束。第39页/共84页第三十九页,共84页。Input语句语句(yj)后的单尾符后的单尾符p一个数据步内可以有多条一个数据步内可以有多条inputinput语句。但是当执行语句。但是当执行(zhxng)(zhxng)完一条完一条inputinput语句后语句后,一般将放弃缓冲区内现有源数据行一般将放弃缓冲区内现有源数据行,而而从源文件中再取一条记录更新缓冲区。若要保持现有源数据从源文件中再取
45、一条记录更新缓冲区。若要保持现有源数据行供下一条行供下一条inputinput使用其数据使用其数据,则应在则应在inputinput语句的最后加入语句的最后加入 跟踪符。跟踪符。p例:例:data tmp1;input x;input y;cards;11 22 3344 55 66;run;data tmp2;input x;input y;cards;11 22 3344 55 66;run;data tmp3;input x;input y;cards;11 22 3344 55 66;run;第40页/共84页第四十页,共84页。Input语句语句(yj)后的双尾符后的双尾符p一般情况
46、一般情况(qngkung)(qngkung)下下,当程序执行到数据步底部后当程序执行到数据步底部后,也会也会从源数据文件中另取一行记录来更新缓冲区内原有数据。若从源数据文件中另取一行记录来更新缓冲区内原有数据。若要缓冲区内原有数据不放弃要缓冲区内原有数据不放弃,使其在数据步的下一循环中仍使其在数据步的下一循环中仍可用可用,则应在则应在inputinput语句最后加上语句最后加上跟踪符。跟踪符。p例:例:data tmp5;data tmp5;input x y;input x y;cards;cards;11 22 3311 22 3344 55 6644 55 66;run;run;data
47、 tmp6;data tmp6;input x y;input x y;cards;cards;11 22 3311 22 3344 55 6644 55 66;run;run;data tmp7;data tmp7;input a;input a;input x input x y;y;cards;cards;11 2211 2233 44 55 6633 44 55 66;run;run;data tmp8;data tmp8;input a;input a;input x 1-2 y;input x 1-2 y;if _n_=10 then stop;if _n_=10 then sto
48、p;cards;cards;11 2211 2233 44 55 6633 44 55 66;run;run;第41页/共84页第四十一页,共84页。源数据源数据(shj)的指针控制的指针控制p当当SASSAS从数据行中读取数据时,它用指针来跟踪当前数据从数据行中读取数据时,它用指针来跟踪当前数据的位置;指针控制符可为的位置;指针控制符可为inputinput语句指示数据源中当前数语句指示数据源中当前数据所在据所在(suzi)(suzi)的行、列位置。的行、列位置。p列指针控制符列指针控制符p列指针控制符列指针控制符“+n”“+n”表示指针右移表示指针右移n n列列(n(n为负则左移为负则左移
49、n n列列);p列指针控制符列指针控制符“n”“n”表示指针移到第表示指针移到第n n列列(绝对位置绝对位置);p列指针控制符列指针控制符“character-string”“character-string”表示把指针移表示把指针移到数据行中字符串到数据行中字符串character-stringcharacter-string后第一个非空格列。后第一个非空格列。p行指针控制符行指针控制符p行指针控制符行指针控制符“#n”“#n”表示指针移到第表示指针移到第n n行行;(;(当一条观测有当一条观测有几行源数据时几行源数据时,起作用起作用)p行指针控制符行指针控制符“#(expression)”
50、“#(expression)”表示指针移到表达式的表示指针移到表达式的值(必须为整数)所指的行。值(必须为整数)所指的行。p行指针控制符行指针控制符“/”“/”表示指针移到下一行的第一列。表示指针移到下一行的第一列。第42页/共84页第四十二页,共84页。指针控制符用法指针控制符用法(yn f)示例示例行指针用法行指针用法(yn(yn f)f)示例示例:data tmp1;data tmp1;input name:$10.input name:$10.age /score1-age /score1-score3;score3;cards;cards;zhangsan 12zhangsan 12