统计软件及应用数据步课件.ppt
《统计软件及应用数据步课件.ppt》由会员分享,可在线阅读,更多相关《统计软件及应用数据步课件.ppt(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、统计软件SAS及应用-Focus 编程技术张媛媛 2010年11月SAS的主要功能p获取数据获取数据p管理数据管理数据p分析数据分析数据p表示数据表示数据p应用软件开发应用软件开发总结:Data步直接输入数据Libname Libname 数据库名数据库名 引擎引擎 ;DATADATA SAS SAS数据集名数据集名;语句语句设定变量属性设定变量属性;INPUTINPUT 语句语句;其他其他SASSAS语句语句;CARDSCARDS;RUNRUN;Length,Label,Informat,Format,Attrib语句句四种输入格式:四种输入格式:按列输入(按列输入(ColumnColumn
2、)格式化输入(格式化输入(FormatFormat)自由列表输入(自由列表输入(ListList)命名输入模式(命名输入模式(NameName)两级两级命名方式两级两级命名方式SAS数据集命名方式SASSAS数据集数据集采用两级命名方式定名:采用两级命名方式定名:Libname.SAS-filenameLibname.SAS-filename(库标记(库标记 .文件名)文件名)如:名为如:名为 DST2.FISH DST2.FISH 的数据集的数据集默认为默认为WORKWORK,即临时数据,即临时数据集只要有数据集名即可集只要有数据集名即可数据集的名字由英文字母、数字、下划线组成,第一个字母数
3、据集的名字由英文字母、数字、下划线组成,第一个字母必须是字母或下划线,名字最多只能有必须是字母或下划线,名字最多只能有8 8 个字符;另外在命个字符;另外在命名时不区分大小写。名时不区分大小写。Examplep希望把希望把F:My SAS FilesV8new F:My SAS FilesV8new 这个目录与一个这个目录与一个名叫名叫libtestlibtest 的的数据库数据库联系起来,并且将联系起来,并且将test test 数数据集据集放置在其中。可以在编辑窗口输入如下的程放置在其中。可以在编辑窗口输入如下的程序:序:libname libtest f:my sas libname l
4、ibtest f:my sas filesv8new;filesv8new;data libtest.test;data libtest.test;input code price;input code price;cards;cards;600381 18600381 18600262 16600262 16600252 8600252 8600009 10600009 10600036600036;run;run;SAS读写规则p读取规则:读取规则:informatinformat或或inputinput语句指定语句指定p存储规则:存储规则:lengthlength语句指定语句指定p输出规
5、则:输出规则:formatformat(数据集)或(数据集)或putput语句语句(日志)日志)指定指定p读取规则主要指定两个方面:读取规则主要指定两个方面:开始读取位置开始读取位置结束读取位置或读取字符长度结束读取位置或读取字符长度指定读取规则的方式指定读取规则的方式p开始读取位置:一般情况下是前一个变量结束读开始读取位置:一般情况下是前一个变量结束读取位置的后一列,存在一种取位置的后一列,存在一种特殊情况特殊情况(:/&)(:/&)p结束读取位置:开始读取非空格数据后遇到的第结束读取位置:开始读取非空格数据后遇到的第一个空格所在列作为结束读取位置一个空格所在列作为结束读取位置开始列开始列结
6、束列结束列默认默认指定始列/绝对指针控制指定终列相对指针控制+指定读入字符数注意:注意:1 1、指定开始列碰见、指定开始列碰见:/&:/&格式修饰符时取最大格式修饰符时取最大2 2、指定读入字符数碰见、指定读入字符数碰见:/&:/&格式修饰符时取最小格式修饰符时取最小例input x$y&$5.;cards;abc de fghj;input x$6 y&$5.;cards;abc de fghj;input x$9 y&$5.;cards;abc de fghj;input x$10 y&$5.;cards;abc de fghj;y=e fy=fgh注意p对于对于字符字符型变量,型变量,l
7、engthlength语句的位置很重要语句的位置很重要data a;data a;length x$3;length x$3;input x$4.y$;input x$4.y$;put x=y=;put x=y=;cards;cards;abcd cdefabcd cdefabc deabc de ;run;run;data a;data a;input x$4.y$;input x$4.y$;length x$3;length x$3;put x=y=;put x=y=;cards;cards;abcd cdefabcd cdefabc deabc de ;run;run;WARNING:W
8、ARNING:字符变量字符变量 x x 的长度已经设置。的长度已经设置。使用使用 LENGTH LENGTH 语句作为语句作为 DATA STEP DATA STEP 中的第一个中的第一个语句可以声明字符变量语句可以声明字符变量的长度。的长度。DATA步执行阶段p在执行期间,在执行期间,SASSAS系统执行以下步骤:系统执行以下步骤:(除非另有除非另有指向指向)1 1)PDVPDV中所有的变量值被初始化为缺失值;中所有的变量值被初始化为缺失值;2 2)输入缓冲器据)输入缓冲器据inputinput语句的数据需求语句的数据需求,读入源数据文读入源数据文件的相应记录行件的相应记录行,并写相应的数据
9、字段到并写相应的数据字段到PDV;PDV;3 3)每个语句被顺序执行)每个语句被顺序执行,并可修改并可修改PDVPDV形成当前观测形成当前观测;4 4)数据步语句一遍执行后)数据步语句一遍执行后,PDV,PDV中的值写入数据集中的值写入数据集;*;*5 5)PDVPDV中外部变量初始化为确失值中外部变量初始化为确失值,程序流程回到程序流程回到2 2);6 6)对数据源文件的每条记录都按上面步骤执行一次;)对数据源文件的每条记录都按上面步骤执行一次;7 7)重复以上步骤直到外部文件中数据结束。)重复以上步骤直到外部文件中数据结束。DATA步的工作流程数据步开始数据步开始有未读入的观测值吗?有未读
10、入的观测值吗?用数据读入语句读入一个观测值用数据读入语句读入一个观测值用其它语句对观测值进行运算或处理用其它语句对观测值进行运算或处理把当前的观测值写入数据集把当前的观测值写入数据集数据集建立完毕,开始下一个数据集建立完毕,开始下一个数据步或过程步数据步或过程步Y YN NInput语句后的单尾符p一个数据步内可以有多条一个数据步内可以有多条inputinput语句。但是当执行完语句。但是当执行完一条一条inputinput语句后语句后,一般将放弃缓冲区内现有源数据一般将放弃缓冲区内现有源数据行行,而从源文件中再取一条记录更新缓冲区。若要保而从源文件中再取一条记录更新缓冲区。若要保持现有源数据
11、行供下一条持现有源数据行供下一条inputinput使用其数据使用其数据,则应在则应在inputinput语句的最后加入语句的最后加入 跟踪符。跟踪符。例:例: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;Input语句后的双尾符p一般情况下一般情况下,当程序执行到数据步底部后当程序执行到数据步底部后,也会从源数也会从源数据文
12、件中另取一行记录来更新缓冲区内原有数据。据文件中另取一行记录来更新缓冲区内原有数据。若要缓冲区内原有数据不放弃若要缓冲区内原有数据不放弃,使其在数据步的下一使其在数据步的下一循环中仍可用循环中仍可用,则应在则应在inputinput语句最后加上语句最后加上跟踪符。跟踪符。例:例:datatmp5;datatmp5;inputxy;inputxy;cards;cards;112233112233445566445566;run;run;datatmp6;datatmp6;inputxy;inputxy;cards;cards;112233112233445566445566;run;run;da
13、tatmp7;datatmp7;inputa;inputa;inputxy;inputxy;cards;cards;112211223344556633445566;run;run;datatmp8;datatmp8;inputa;inputa;inputx1-2y;inputx1-2y;if_n_=10thenstop;if_n_=10thenstop;cards;cards;112211223344556633445566;run;run;源数据的指针控制p当当SASSAS从数据行中读取数据时,它用指针来跟踪当前数从数据行中读取数据时,它用指针来跟踪当前数据的位置;指针控制符可为据的位置;
14、指针控制符可为inputinput语句指示数据源中当语句指示数据源中当前数据所在的行、列位置。前数据所在的行、列位置。p列指针控制符列指针控制符列指针控制符列指针控制符“+n”+n”表示指针右移表示指针右移n n列列(n(n为负则左移为负则左移n n列列);列指针控制符列指针控制符“n”n”表示指针移到第表示指针移到第n n列列(绝对位置绝对位置);列指针控制符列指针控制符“character-string”character-string”表示把指针移到表示把指针移到数据行中字符串数据行中字符串character-stringcharacter-string后第一个非空格列。后第一个非空格列
15、。p行指针控制符行指针控制符行指针控制符行指针控制符“#n”#n”表示指针移到第表示指针移到第n n行行;(;(当一条观测有几当一条观测有几行源数据时行源数据时,起作用起作用)行指针控制符行指针控制符“#(expression)”#(expression)”表示指针移到表达式的值表示指针移到表达式的值(必须为整数)所指的行。(必须为整数)所指的行。行指针控制符行指针控制符“/”/”表示指针移到下一行的第一列。表示指针移到下一行的第一列。指针控制符用法示例行指针用法示例行指针用法示例:data tmp1;data tmp1;input name:$10.input name:$10.age /s
16、core1-age /score1-score3;score3;cards;cards;zhangsan 12zhangsan 1288 98 6788 98 67lisi 13lisi 1377 98 8677 98 86;run;run;列指针用法示例列指针用法示例1:1:data tmp2;data tmp2;m=-1;/*m=-1;/*左移一列左移一列*/input x 1-4+m y input x 1-4+m y 2 id$2.;2 id$2.;/*drop m;*/*drop m;*/cards;cards;123451234524680246801357913579;run;r
17、un;列指针用法示例列指针用法示例2:2:data tmp3;data tmp3;input id$2.age input id$2.age 3-4 size=3-4 size=x;x;list;list;cards;cards;0116size=54.230116size=54.230215size=45.660215size=45.661318size=61.011318size=61.01;run;run;Cards/Cards4语句pCARDSCARDS语语句句或或DATALINESDATALINES语语句句告告诉诉SASSAS系系统统下下面面跟跟着着的的是是数数据行。据行。p数据行之
18、前用数据行之前用CARDSCARDS语句或语句或DATALINESDATALINES语句。语句。语句格式:语句格式:CARDSCARDS;或或DATALINESDATALINES;数据行数据行 数据行之前用数据行之前用CARDSCARDS语句。语句。datadata;inputinput var1 var2 var3$;var1 var2 var3$;cardscards;16 20 First16 20 First;Cards/Cards4语句p数据行数据行中含有中含有分号分号时,必须用时,必须用CARDS 4CARDS 4或或DATALINES4DATALINES4语句。语句。语句格式:语
19、句格式:Cards 4;Cards 4;或或DATALINES4DATALINES4;数据行数据行;数据行中含有分号时用数据行中含有分号时用CARDS4CARDS4语句。语句。datadata;inputinput var1$var2$var3$;var1$var2$var3$;cards4cards4;A ;BA ;B(;)(;);例data a;input x$y$;put x=y=;cards4;abcd;cdefabc;de;run;data a;input x$y$;put x=y=;cards4;abcd;cdefabc;de;run;使用DATA步新建数据集数据存于纸上数据存于纸
20、上(需直接键入)(需直接键入)编程:用编程:用DATA语句语句数据存于文本数据存于文本文件文件data SAS-data-set;data SAS-data-set;变量属性设定语句变量属性设定语句;infile filename option;infile filename option;input input 变量输入设定;变量输入设定;其他其他SASSAS语句;语句;runrun;data SAS-data-set;data SAS-data-set;变量属性设定语句变量属性设定语句;inputinput变量输入设定;变量输入设定;其他其他SASSAS语句;语句;cards;cards;
21、原始数据原始数据;runrun;自文本数据文件生成SAS数据集以以文本方式文本方式存放待生成存放待生成SASSAS数据集数据集的数据文件的数据文件要求要求:DATA DATA SASSAS数据集名数据集名;ATTRIBATTRIB语句语句设定变量属性设定变量属性;INFILEINFILE 文件名文件名 FIRSTOBS=n1 FIRSTOBS=n1 OBS=n2OBS=n2;INPUTINPUT 语句;语句;其他其他SASSAS语句语句;RUNRUN;datadata CHILD;CHILD;infileinfile“C:SUNNYC:SUNNY例题数据资料例题数据资料CHILD.TXT”;C
22、HILD.TXT”;inputinput ID X1$X2 X3 X4ID X1$X2 X3 X4;runrun;应用举例应用INFILE语句导入外部数据文件的标准程序 data delinfo(label=退市信息|delist information);format stkcd$6.lstknm$12.lstdt yymmdd10.delistdt yymmdd10.exchflg$1.stktype$1.;informat stkcd$6.lstknm$12.lstdt yymmdd10.delistdt yymmdd10.exchflg$1.stktype$1.;labelstkcd=
23、股票代码|stock codelstknm=最新股票名称|latest stock namelstdt=股票上市日|list datedelistdt=退市日期|delist dateexchflg=交易所标识|exchange flagstktype=股票类型|stock type;infile d:resdatdelinfo.txt delimiter=09x missover dsd firstobs=2;input stkcd$6.lstknm$12.lstdt yymmdd10.delistdt yymmdd10.exchflg stktype 1.;run;例中,09x是TAB的十
24、六进制表示,这里规定delimiter=09x是不能去掉的,去掉的话就出错了。由于文本数据不规则,须中或:控制变量delistDt.Infile选项说明pINFILE语句用来定义一个外部数据文件,文件中的数据用语句用来定义一个外部数据文件,文件中的数据用INPUT语句读取。外部文件可以是已存在的磁盘文件,也语句读取。外部文件可以是已存在的磁盘文件,也可以是从键盘上输入的数据行。可以是从键盘上输入的数据行。p语句格式语句格式 INFILE file-specification;lfile-specification选项说明:选项说明:EXTERNAL FILE规定一个外部文件的完整路径和文件名。
25、规定一个外部文件的完整路径和文件名。CARDS|CARDS4|DATALINES|DATALINES4选项指明输入数据为选项指明输入数据为CARDS(CARDS4,DATALINES,DATALINES4)后面的数据流,后面的数据流,而非来自外部数据文件。而非来自外部数据文件。loption-list选项说明(部分):选项说明(部分):选项选项说明说明DELIMITER=string-in-DELIMITER=string-in-quotation-marks|quotation-marks|character-variable/DLM=character-variable/DLM=指定列表输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 统计 软件 应用 数据 课件
限制150内