SAS编程技术数据步文件管理实用教案_第1页
SAS编程技术数据步文件管理实用教案_第2页
SAS编程技术数据步文件管理实用教案_第3页
SAS编程技术数据步文件管理实用教案_第4页
SAS编程技术数据步文件管理实用教案_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1、DATA语句语句(yj) 语句(yj)格式 DATA data-set-name-1 .data-set-name-n ; DATA view-name data-set-name-1 . . .data-set-name-n / VIEW=view-name (); DATA data-set-name / PGM=program-name (); DATA PGM=program-name (); REDIRECTREDIRECT INPUT | OUTPUT old-name-1 = new-name-1 ; DATA VIEW=view-name (); DESCRIBE; 第1页/共

2、89页第一页,共90页。选项说明选项说明(shumng) 这里(zhl)只给出常用选项的说明,其它选项说明可以从SAS系统帮助中查找。 data-set-name规定要创建的SAS数据集Data-set-options数据集选项VIEW=创建DATA步数据视窗文件PGM=存贮被编辑程序第2页/共89页第二页,共90页。例6.1 规定要创建的SAS数据集。data; /*系统自动规定数据集名datan * /data a; /*创建临时数据集a */data ResDat .a; /*创建永久(yngji)数据集 */data data1 data2; /*创建两个临时数据集data1和data

3、2 */data _null_; /*特殊名,不创建SAS数据集,用于输出 */Run;第3页/共89页第三页,共90页。例例 数据集选项举例。数据集选项举例。data new (drop=var1); /*去掉数据集去掉数据集new中变量中变量var1*/data new (keep=_numeric_); /*保留数据集保留数据集new中所有数值变量中所有数值变量*/data new (label=股本变动历史股本变动历史); /*规定数据集规定数据集new标签标签(bioqin)名为名为”股本变动历史股本变动历史”*/data new (rename=(var1=u var2=v); /

4、*将数据集将数据集new中变量中变量var1和和var2更名为更名为u和和v*/data book(index=(author subject); /*数据集数据集book对变量对变量author subject建立索引建立索引*/ 第4页/共89页第四页,共90页。特殊特殊(tsh)数据集名数据集名 _data_ (省略数据集名)data _data_; /*等价(dngji)于语句data;*/系统自动为数据集赋名:data1, data2, datan.第5页/共89页第五页,共90页。 _null_ 一般(ybn)和PUT语句一起用。由PUT输出结果,只输出到LOG窗口,不会产生SAS

5、数据集。 例6.6 不产生数据集。 data _null_; x=exp(5); y=log(10); put x= y=; run;80 data _null_;81 x=exp(5);82 y=log(10);83 put x= y=;84 run;NOTE: “DATA 语句”所用时间(总处理(chl)时间): 实际时间 0.03 秒 CPU 时间 0.00 秒第6页/共89页第六页,共90页。 _last_ _last_是SAS系统的一个自动变量,取值为最新创建的SAS数据(shj)集名。 例6.7 查看最新创建的SAS数据(shj)集。 data a; set _last_; run

6、;第7页/共89页第七页,共90页。 一个一个DATA语句语句(yj)下多个数据集名下多个数据集名 例6.8 观测子集的形成。 data year1998 year1999 year2000;set ;if year (date)=1998 then output year1998; /* year为函数名*/else if year (date)=1999 then output year1999;else if year (date)=2000 then output year2000;run;例中,根据条件产生(chnshng)三个观测子集,名字分别为YEAR1998, YEAR1999

7、和YEAR2000. 第8页/共89页第八页,共90页。85 data year1998 year1999 year2000;86 set ResDat.stk000001 ;87 if year (date)=1998 then output year1998; /* year为函数名*/88 else if year (date)=1999 then output year1999;89 else if year (date)=2000 then output year2000;90 run;NOTE: 从数据集 RESDAT.STK000001 读取了 3836 个观测。NOTE: 数据

8、集 WORK.YEAR1998 有 245 个观测和 62 个变量。NOTE: 数据集 WORK.YEAR1999 有 237 个观测和 62 个变量。NOTE: 数据集 WORK.YEAR2000 有 238 个观测和 62 个变量。NOTE: “DATA 语句”所用(su yn)时间(总处理时间): 实际时间 0.06 秒 CPU 时间 0.04 秒第9页/共89页第九页,共90页。CARDS与与CARDS4语句语句(yj) CARDS语句或DATALINES语句告诉SAS系统(xtng)下面跟着的是数据行。数据行之前用CARDS语句或DATALINES语句。语句格式:CARDS;或DAT

9、ALINES; 数据行 例6.10 数据行之前用CARDS语句。 data;input var1 var2 var3 $;cards;16 20 First;第10页/共89页第十页,共90页。 数据行中含有分号时,必须(bx)用CARDS 4或DATALINES4语句。 语句格式: Cards 4; 或DATALINES4; 数据行 ; 例6.11 数据行中含有分号时用CARDS4语句。 data; input var1$ var2$ var3 $; cards4; A ; B ( ; ) ;第11页/共89页第十一页,共90页。PUT语句语句(yj) PUT语句输出信息到:S A S 系

10、统 的 L O G 窗 口(chungku);S A S 系 统 的 O U T P U T 窗 口(chungku);FILE语句规定的外部文件。第12页/共89页第十二页,共90页。 简单方式(fngsh): PUT ; PUT .specification ; 列方式(fngsh): PUT start-column ; 格式化方式(fngsh): PUT start-column ; PUT variable format.; PUT (variable-list) (format-list) ; 列表方式(fngsh): PUT variable ; PUT character-st

11、ring ; PUT variable format. ; 命名方式(fngsh): PUT variable= ; PUT variable= start-column ;语句语句(yj)格式格式 第13页/共89页第十三页,共90页。例6.12 用PUT语句(yj)产生的输出结果及其比较。 data _null_;put 132 * _; /*在log窗口输出132个下划线_*/put 100*1; /* 在log窗口输出100个1*/run;data _null_ ;input x y z;put _infile_ ; /*输出最新的数据行到SAS Log窗口*/cards;1 -5 9

12、0 3 710 2 8;run;LOG窗口输出(shch)结果: 1 -5 9 0 3 7 10 2 8 第14页/共89页第十四页,共90页。例6.14 其它控制输出格式举例。 data _null_;set ;by sex;file print;*向结果(ji gu)窗口输出;put name 1-8 12 sex;if last.sex then put / This is the last of sex $ _page_;run;第15页/共89页第十五页,共90页。Alice FBarbara FCarol FJane FJanet FJoyce FJudy FLouise FMar

13、y FThis is the last of FAlfred MHenry MJames MJeffrey MJohn MPhilip MRobert MRonald MThomas MWilliam MThis is the last of M第一页第二页输出(shch)窗口显示:第16页/共89页第十六页,共90页。data;put Example of overprint overprint -;run;LOG窗口输出(shch)结果:Example of overprint-第17页/共89页第十七页,共90页。列方式列方式(fngsh)输出输出 语句格式: PUT start-col

14、umn ; 例6.15 控制输出的列位置(wi zhi)。 data a; a=100; b=300; put a 10-16 .2 b 20-26 .3; run; LOG窗口输出结果: 100.00 300.000 第18页/共89页第十八页,共90页。列表方式列表方式(fngsh)输出输出 语句格式: PUT variable ;PUT character-string ;PUT variable format. ;修饰符说明: n*规定后面格式重复n次; : 规定后面格式输出(shch)变量值时去掉前后的空格; 第19页/共89页第十九页,共90页。 例6.16 应用举例(j l)。

15、data a; x1=; x2=; x3=; put (_all_) (); run; LOG窗口输出结果: 第20页/共89页第二十页,共90页。格式化输出格式化输出(shch) 语句(yj)格式: PUT start-column ; PUT variable format.; PUT (variable-list) (format-list) ;第21页/共89页第二十一页,共90页。 例6.17 应用(yngyng)举例。 data a; input name & $10. bldg $ room; /*变量name有空格*/ put name 20 (bldg room) (

16、$1.-, 3.); /*从第20列开始输出第二、三个变量*/ cards; GU BEIJING J 125 ROBERT US C 233 ; run;第22页/共89页第二十二页,共90页。LOG窗口输出结果:53 data a;54 input name & $10. bldg $ room; /*变量name有空格*/55 put name 20 (bldg room) ($1.-, 3.); /*从第20列开始输出第二、三个变量*/56 cards;GU BEIJING J-125ROBERT US C-233NOTE: 数据集 WORK.A 有 2 个观测和 3 个变量。

17、NOTE: “DATA 语句”所用(su yn)时间(总处理时间): 实际时间 0.01 秒 CPU 时间 0.00 秒59 ;60 run;第23页/共89页第二十三页,共90页。上面程序也可以写成:上面程序也可以写成: data a;input name & $10. bldg $ room ;a=-;put name 20 bldg $ a $ room;cards;GU BEIJING J 125ROBERT US C 233;run;但第一种方法但第一种方法(fngf)的效果好。的效果好。LOG窗口输出结果:61 data a;62 input name & $10.

18、 bldg $ room ;63 a=-;64 put name 20 bldg $ a $ room;65 cards;GU BEIJING J - 125ROBERT US C - 233NOTE: 数据集 WORK.A 有 2 个观测和 4 个变量。NOTE: “DATA 语句”所用时间(总处理(chl)时间): 实际时间 0.03 秒 CPU 时间 0.00 秒68 ;69 run;第24页/共89页第二十四页,共90页。BY语句语句(yj) 数据步中,BY语句规定(gudng)分组变量。用于控制SET,MERGE,UPDATE或MODIFY语句的操作。语句格式 By Variable

19、-1. Variable-N ;第25页/共89页第二十五页,共90页。 选项说明 BY语句(yj)概念 Variable规定分类排序或加索引的变量Descending规定按降序排序,缺省为按升序排Groupformat规定用格式化值分组Notsorted未排序BY变量BY语句规定的变量BY值BY变量的值或格式化值BY组同一BY值所有观测构成的组第26页/共89页第二十六页,共90页。FIRST.变量变量(binling)和和LAST.变量变量(binling) SAS系统对每个BY组创建两个自动变量:First.variable 和 Last.variable, 用来标识每个BY组的第一个和

20、最后一个观测。对于一个BY组的第一个观测值,取1,其余取0.对于一个BY组的最后一个观测值,取1,其余取0.这些(zhxi)变量不含在新产生的数据集中。 第27页/共89页第二十七页,共90页。例6.18 保留各BY组的最后一个(y )观测值。 data a;set ResDat.stk000001; month=month(date);year=year(date);proc sort data=a;by year month;data b;set a;by year month;if last.month; /*保留每月最后一个(y )观测值 */run;第28页/共89页第二十八页,共9

21、0页。SET语句语句(yj) SET语句从一个或多个已存在(cnzi)的SAS数据集中读取观测值,并将这些观测组合在一个数据集中。 语句格式: SET data-set-name-1 data-set-name-n /UNIQUE ; 一个DATA步中可以有多个SET语句,一个SET语句中可以有任个SAS数据集。 第29页/共89页第二十九页,共90页。选项说明选项说明(shumng) 没有变元读最新创建数据集Data-Set-Name规定要组合的数据集Data-Set-Options规定对数据集的操作, 常用选项keep=,Drop=,rename=,where=和in=。Point=Var

22、iable_Name规定一个临时变量控制SET语句读入的观测序号NOBS=Variable_Name规定一个临时变量,记录读入数据集的观测总数。此变量不含在新产生的数据集中END=Variable_Name规定一个临时变量,作为文件结束的标识。文件结束时取值1,其它观测取0。此变量不含在新的数据集中第30页/共89页第三十页,共90页。应用应用(yngyng)举例举例 例例6.19 选项说明若干举例。选项说明若干举例。 规定临时变量规定临时变量(binling)选项选项Point=: data a; set ResDat.Idx000001; obs=_n_; data b (keep=obs

23、 date clpr); do n=3,5,7,4; set a point=n; /*读入数据集读入数据集a中的第中的第3,5,7,4观测观测 */ if _error_=1 then abort; output; end; stop; /*使用选项使用选项point=时,经常要用时,经常要用stop语句来终止语句来终止data步的执步的执行行*/ proc print; run;第31页/共89页第三十一页,共90页。例例6.22 数据数据(shj)集选项集选项in=var。 data a;set one(in=one) two(in=two);in1=one;in2=two;run;数据

24、(shj)集a:xyZin1in21Groucho103Harpo105Kart102Chico014Zeppo01第32页/共89页第三十二页,共90页。规定临时(ln sh)变量选项NOBS=: data a;do obsnum=1 to last by 20; /*临时(ln sh)变量为last */set ResDat.stk000001 point=obsnum nobs=last;output;end;stop;run;第33页/共89页第三十三页,共90页。如何找数据(shj)集的观测个数: data a;a=nobs; set ResDat.stk000001 nobs=no

25、bs;if _n_=a;run;如何找数据(shj)集的最后一个观测值: data a;set ResDat.stk000001 nobs=nobs;if _N_=NOBS;run;第34页/共89页第三十四页,共90页。找数据集最后一个观测值更简单的方法(fngf): data a;set ResDat.stk000001 end=obs_last;if obs_last=1;run;输出数据集的最后一个观测值: data a;set ResDat.stk000001 End=lastobs;if lastobs;x=lastobs; /*将临时变量lastobs的值赋给X*/ put la

26、st observation;run;第35页/共89页第三十五页,共90页。例6.23 数据集选项说明若干举例。保留部分变量:data a ;set ResDat.Idx000001(keep=date clpr);run;data b (keep=date clpr);set ResDat.Idx000001;run;data c;set ResDat.Idx000001;keep date clpr;run;上述三段程序的结果相同。注意,但第三段程序用的是KEEP语句,并不是(b shi)数据集选项的应用。data oppr(keep=date oppr) clpr(keep=date

27、clpr);set ResDat.stk000001;run; 第36页/共89页第三十六页,共90页。 保留(boli)部分观测: data males; set ; where sex=M; run; data males; set ; if sex=M then output; run; data males; set ; if sex=M then delete; run;第37页/共89页第三十七页,共90页。 例6.24 相同变量的数据(shj)集连接。 data qttn; set ResDat.stk000001 ResDat.stk000002; run; 例6.25 不同变

28、量的数据(shj)集连接。 data a; set ResDat.stk000001; run;第38页/共89页第三十八页,共90页。MERGE语句语句(yj) MERGE语句(yj)将多个数据集中的观测合并为新数据集中的一个观测。SAS系统合并观测的方式依赖于BY语句(yj)的使用。 语句(yj)格式 MERGE data-set-name-1 data-set-name-2 data-set-name-n ;第39页/共89页第三十九页,共90页。选项说明选项说明(shumng) Data-Set-Name规定要合并的数据集Data-Set-Options规定对数据集的操作, 用到的语句

29、有keep,Drop和rename.End=Variable_Name规定一个临时变量,作为文件结束的标识第40页/共89页第四十页,共90页。应用应用(yngyng)举例举例 例6.27 一对一合并(hbng) data a; merge ResDat.stk000001; run; 例中,一对一合并(hbng)时,不需要BY语句。 例6.28 匹配合并(hbng) data a; merge ResDat.stk000001 (keep=date clpr rename=(clpr=clpr000001) ResDat.stk000002 (keep=date clpr rename=(c

30、lpr=clpr000002); by date; run; 例中,匹配合并(hbng)必须有BY语句。 第41页/共89页第四十一页,共90页。 例例6.29 使用数据集选(使用数据集选(in=),选择股票代码为选择股票代码为000001,200011,600601和和900903的首次发行与上市的首次发行与上市(shng sh)数据。数据。 Data stkcd; Input stkcd$6.; Cards; 000001 200011 600601 900903 ; Data Iissulst1; Merge Resdat. Iissulst stkcd(in=id); If id; /

31、* 选择满足条件股票的首次发行与上市选择满足条件股票的首次发行与上市(shng sh)数据数据 */ Run;第42页/共89页第四十二页,共90页。FILE语句语句(yj) FILE 语句用于规定将要输出的外部(wib)文件。FILE 语句一般要与PUT语 句配合使用。 同一个DATA步可以用多个FILE语句。 FILE语句是可执行语句,因而可以用在条件(IFTHEN)过程中。 语句格式 FILE file-specification ; FILE-SPECIFICATION选项说明: external file规定一个外部文件的完整路径和文件名Fileref文件标识名Log规定输出到LOG

32、窗口Print规定输出到OUTPUT窗口第43页/共89页第四十三页,共90页。O P T I O N S 选 项 说 明 ( s h u m n g ) ( 部 分 ) : 选项说明DELIMITER= string-in-quotation-marks | character-variable/ DLM=指定列表输出时所用的分隔符,在别的输出形式中该选项不起作用。缺省情况下为空格。DROPOVER规定当输出数据行的长度超过规定值时,忽略超过的部分。FLOWOVER规定当输出数据行的长度超过规定值时,超出部分在下一行输出。缺省状态为FLOWOVER。DSD规定一个数据可以包含分隔符,要用引号

33、括住。FILENAME=variable定义一个字符变量,其值为PUT语句打开的文件名。FILEVAR=variable定义一个变量,FILE语句根据其值的变化关闭和打开输出文件。第44页/共89页第四十四页,共90页。例6.39 filename=variable选项应用 data a;file print filename=xxx; /* 输出(shch)到OUTPUT窗口,put语句打开的文件名为print */put hello; /* OUTPUT窗口将输出(shch)hello */name=xxx; /* 数据集a中有一个变量name和一个观测值print */run; 数据集a

34、name1PRINT第45页/共89页第四十五页,共90页。 data a; file filename=xxx; /* 输出到文件d:a.txt,put语句(yj)打开的文件名为*/ put hello; /* 文件的内容为: hello*/ fname=xxx; run;fname1d:a.txt数据(shj)集a第46页/共89页第四十六页,共90页。例6.44 输出规定格式的外部文本文件。data;set ;a=%a(;b=,;c=); ;file “D:” ;put a $ stkcd $ b $ lstknm $ c $ ;run;例中程序产生(chnshng)股票宏文本文档。 第

35、47页/共89页第四十七页,共90页。INFILE语句语句(yj) INFILE语句用来定义一个外部数据文件,文件中的数据用INPUT语句读取。外部文件可以是已存在的磁盘(c pn)文件,也可以是从键盘上输入的数据行。 语句格式 INFILE file-specification ; FILE-SPECIFICATION选项说明: EXTERNAL FILE和 FILEREF选项类似FILE语句的相应选项。 CARDS|CARDS4|DATALINES|DATALINES4选项指明输入数据为CARDS(CARDS4, DATALINES, DATALINES4)后面的数据流,而非来自外部数据文

36、件。 第48页/共89页第四十八页,共90页。大部分选项的作用和FILE的一致。下面只介绍几个INFILE独有(d yu)的选项。 OPTIONS选项说明选项说明DSD规定若一个数据由引号括起,则SAS认为其包含的逗号是字符数据。设定缺省分隔符为逗号。两个连续分隔符中间数据为缺失。读入时去掉数据的引号。END=variable定义一个变量标记是否已经到达输入文件的结尾。FIRSTOBS=record-number规定从该记录行开始读入MISSOVER阻止INPUT语句从下一个数据行读入数据,未赋值的变量设为缺失。OBS=record-number | MAX规定要读入的记录数.第49页/共89

37、页第四十九页,共90页。例4 DELIMITER=选项应用 data a;infile cards delimiter=,;input x y z;cards;3,6,91,3,58,8,8;例中,要输入的数据用逗号(duho)分隔,创建SAS数据集时用选项DELIMITER=,。 数据(shj)集axyz136921353888第50页/共89页第五十页,共90页。例7 DSD选项应用 data scores;infile datalines delimiter=,;input test1 test2 test3;datalines;91,87,9597,92, 1 , 1;例中,分隔符为逗

38、号,但第二个观测值的两个相邻分隔符之间还有缺失值,没有DSD选项时,这两个相邻的分隔符组成一个分隔符,于是(ysh),输入数据时会出错。 test1test2test31918795297921第51页/共89页第五十一页,共90页。上例加上DSD选项,将两个相邻分隔符之间的数作为缺失值处理 data scores;infile datalines delimiter=, DSD;input test1 test2 test3;datalines;91,87,9597,92, 1 , 1;通常情况(qngkung)下,同时加上MISSOVER和 DSD两个选项是良好的编程习惯。 test1te

39、st2test31918795297.922.11第52页/共89页第五十二页,共90页。应用应用(yngyng)举例举例 例例6.48 应用应用INFILE语句导入外部语句导入外部(wib)数据文件的标准程序数据文件的标准程序 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.

40、 delistdt yymmdd10. 第53页/共89页第五十三页,共90页。 exchflg $1. stktype $1. ; label stkcd=股票代码|stock code lstknm=最新股票名称|latest stock name lstdt=股票上市日|list date delistdt=退市日期|delist date exchflg=交易所标识|exchange flag stktype=股票类型|stock type; infile d:resdatdelinfo.txt delimiter=09x missover dsd firstobs=2; input

41、stkcd $6. lstknm $12. lstdt yymmdd10. delistdt yymmdd10. exchflg stktype 1. ; run; 例中,09x是TAB的十六进制表示,这里规定(gudng)delimiter=09x是不能去掉的,去掉的话就出错了。由于文本数据不规则,须中或:控制变量delistDt. 第54页/共89页第五十四页,共90页。第第19章章 SQL过程过程(guchng)简介简介清华大学经管学院清华大学经管学院 朱世武朱世武Resdat样本样本(yngbn)数据:数据:SAS论坛:论坛: 第55页/共89页第五十五页,共90页。SQL概念(gin

42、in) SQL的英文全称(qun chn)是Structured Query Language, 翻译成汉语为“结构化查询语言” 第56页/共89页第五十六页,共90页。SQL过程(guchng) 可以通过(tnggu)调用SAS的SQL过程使用SQL语言 。 PROC SQL可以使用DATA选项、函数、INFORMAT、FORMAT和通用的SAS语句。 PROC SQL的功能: 产生汇总统计表; 从表和视图中检索数据; 合并表和视图中的数据; 建立表、视图和索引; 更新PROC SQL表中的数据值; 更新和检索DBMS数据管理系统中的表; 修改、添加、剔除PROC SQL表中的数据列。第57

43、页/共89页第五十七页,共90页。SQL过程(guchng)术语 PROC SQL表和SAS数据文件一样(yyng),都是SAS数据类型文件。 PROC SQL表包括行和列。 行对应SAS数据文件中的观测, 列对应SAS数据文件中的列变量。 第58页/共89页第五十八页,共90页。查询查询(Queries)(Queries)查询从表、视图和查询从表、视图和DBMSDBMS中检索数据。使用中检索数据。使用SELECTSELECT语句和语句和其附属子句来建立查询。其附属子句来建立查询。视图视图(Views) (Views) PROC SQLPROC SQL视图并不储存数据,而只是存储了一个视图并不

44、储存数据,而只是存储了一个SELECTSELECT语句或者查询。语句或者查询。空值空值(Null Values) (Null Values) 根据根据SQLSQL的的ANSIANSI(美国国家标准协会(美国国家标准协会(xihu)(xihu))标准,)标准,缺失值被叫做空值。缺失值被叫做空值。第59页/共89页第五十九页,共90页。PROC SQL特点(tdin) 因为PROC SQL继承了SQL,所以和其它SAS过程步有一定的区别。 PROC SQL持续(chx)运行直至遇到QUIT语句、DATA步,或其它SAS过程。因此,不用在每个SQL语句中重复PROC SQL。 SQL 过程语句有多个

45、子句。 SELECT语句在检索数据的同时会在输出窗口输出数据,使用NOPRINT选项可以阻止该项输出。 用ORDER BY语句可以代替SORT过程来完成排序。 RUN语句在PROC SQL语句中不起作用。第60页/共89页第六十页,共90页。PROC SQL与SAS DATA步比较(bjio)举例 中国队和美国队打乒乓球比赛,队员分成5个水平,每个水平的球员都要和对手同一水平的队员打一场比赛,基础表数据(shj)如下。 China Playerlevel china0 c011 c022 c033 c04USA playerlevel usa1 u002 u012 u023 u034 u04第

46、61页/共89页第六十一页,共90页。设两个(lin )基础表名分别为China和America。使用merge语句来连接时,有如下对战结果。Data PingPong;Merge resdat.China resdat.USA;Run;level china america1 c01 u002 c02 u012 c03 u023 c04 u034 u04显然,这不是(b shi)完整的对战信息。 第62页/共89页第六十二页,共90页。如果用PROC SQL中的连接语句,就很容易得到(d do)满足要求的结果。proc sql;title PingPang China versus USA

47、table;create table PingPang as select , China, USA from a inner join b on =;Select * from PingPang;quit;PingPang China versus America tableLevel china america1 c02 u002 c03 u022 c03 u013 c04 u03第63页/共89页第六十三页,共90页。第第16章章 统计统计(tngj)量计算量计算清华大学经管清华大学经管(jnggun)学院学院 朱世武朱世武Resdat样本数据:样本数据:SAS论坛:论坛: 第64页/共

48、89页第六十四页,共90页。本章将介绍的统计本章将介绍的统计(tngj)量计算过程包量计算过程包括:括: 相关过程; 频数过程; 均值(jn zh)过程; 单变量过程。 第65页/共89页第六十五页,共90页。相关相关(xinggun)过程过程 相关过程(guchng)(CORR)用于计算变量间的相关系数。 相关过程(guchng)句法 PROC CORR ; BY variable-1. variable-n ; FREQ frequency-variable; PARTIAL variable(s); VAR variable(s); WEIGHT weight-variable; WIT

49、H variable(s);第66页/共89页第六十六页,共90页。 语句(yj)说明: BY分别对每一BY组计算相关系数FREQ规定一个数值变量, 其值为每一观测值出现的频数PARTIAL给出Pearson, Spearman或Kendall偏相关系数的变量名VAR给出要计算相关系数矩阵的变量和顺序WEIGHT计算加权的乘积矩相关系数时给出权数变量名字WITH计算变量组合之间的相关系数第67页/共89页第六十七页,共90页。PROC CORR语句语句(yj) PROC CORR ; PROC CORR语句语句(yj)选项选项说明由下页表给出。说明由下页表给出。第68页/共89页第六十八页,共

50、90页。选项说明(shumng):ALPHA 输出Cronbach系数COV 输出协方差DATA=输入数据集名NOPRINT禁止打印输出OUTP=规定创建存放Pearson相关系数的数据集OUTS=规定创建存放Spearman相关系数的数据集PEARSON输出Pearson相关系数第69页/共89页第六十九页,共90页。其它其它(qt)语句语句 VAR语句 VAR variable-list; 列出要计算相关系数的变量。 WITH语句 WITH variable-list; 该语句和VAR语句联合使用计算变量间特殊组合的相关系数。用VAR语句列出的变量放在相关阵的上方,而用WITH语句列出的变

51、量放在相关阵左边(zu bian)。 PARTIAL语句 PARTIAL variable-list; 计算Pearson偏相关,Spearman偏秩序相关,或Kendall偏tau-b。该语句给出偏相关变量的名子。 第70页/共89页第七十页,共90页。 WEIGHT语句 WEIGHT variable; 计算(j sun)加权的乘积矩相关系数,该语句给出权数变量名字。该语句用于Pearson(皮尔逊)相关。 FREQ语句 FREQ variable; 该语句指定一个数值型的FREQ变量,它的值表示输入数据集中相应观测出现的频数。该变量的值应为正整数。若FREQ变量值1或缺失,相应的观测不参

52、加计算(j sun)统计量;若这个值不是正整数,取整数部分。 BY语句 BY variable-list; 对BY变量定义的观测组分别计算(j sun)其相应的简单统计量。当使用BY语句时,要求输入数据集已按BY变量排序的次序排列,除非指定NOTSORTED。 第71页/共89页第七十一页,共90页。应用应用(yngyng)举例举例 例16.1 计算(j sun)Pearson相关系数及其它关联测度。 proc corr data= pearson spearman hoeffding; var weight oxygen runtime; title Measures of Associat

53、ion for; title2 a Physical Fitness Study; run;第72页/共89页第七十二页,共90页。例16.2 计算并输出相关指标。proc corr data=ResDat.Idx000001 pearson spearman kendall hoeffding;var oppr hipr lopr clpr;title Spearman 的rho, Kendall的tau-b, Pearson和Hoeffding相关;run;proc corr data=ResDat.Idx000001 csscp cov;var oppr hipr lopr ;parti

54、al clpr;title 偏相关阵;run;proc corr data=ResDat.Idx000001 cov alpha outp=corrout;var oppr hipr lopr ;title 协方差阵和相关阵;run;proc print data=corrout;title2 PROC CORR产生(chnshng)的输出数据集;run;例中,计算上证指数中变量OPPR, HIPR, LOPR, CLPR之间4种类型的关联测 度 , P E A R S O N 偏 相 关 阵 , C R O N B A C H 系 数 并 产 生(chnshng)TYPE=CORR的含有协方

55、差及相关阵的输出数据集。 第73页/共89页第七十三页,共90页。 例16.3 计算两个数据集中相同变量(binling)之间的相关系数。 data a; /*数据集准备 */ merge ResDat.Idx000001(keep=date oppr clpr) ResDat.szcz(keep=date oppr clpr rename=(oppr=oppr_sz clpr=clpr_sz) ); by date; run; proc corr data=a nomiss cov; var oppr_sz clpr_sz; with oppr clpr; title2 长方形的COV和CO

56、RR阵; run; proc corr data=a cov csscp outp=oup; title2 从含有缺失值的数据集中计算CSSCP和COV; run; 例中,对上证指数和深证成指中的变量(binling)开盘价和收盘价作相应的计算。 第74页/共89页第七十四页,共90页。频数频数(pn sh)过程过程 频数(pn sh)过程(FREQ)用于计算各种形式的频数(pn sh)及一些检验统计量。 第75页/共89页第七十五页,共90页。频数频数(pn sh)过程句法过程句法 PROC FREQ options; OUTPUT ; TABLES requests / options;

57、WEIGHT variable; EXACT statistic-keywords; BY variable-list;第76页/共89页第七十六页,共90页。 语句(yj)说明: BY对BY变量定义的观测组分别计算其相应的频数或相等交叉制表EXACT对特定统计量作精确检验OUTPUT产生包含特定统计量的数据集TABLES产生多变量交叉表并对关联度进行度量和检验TEST要求对关联度和一致性度量进行近似检验WEIGHT规定一个变量,其值为每一观测的权数第77页/共89页第七十七页,共90页。PROC FREQ语句语句(yj) PROC FREQ options; 选项说明选项说明(shumng)

58、: Data=规定输入数据集Compress在下一个单向频数表不适合页面的空间时强迫在当前页输出Formchar=规定用来构造列联表单元的轮廓线和分隔线的字符Noprint规定不输出任何描述统计量Order=规定输出频数表时分类变量的排序方式Page规定每页只输出一张表,否则按每页行数允许的空间输出多张表第78页/共89页第七十八页,共90页。 ORDER=选项及说明(shumng): INTERNAL缺省值,按数据值的次序排列FREQ按频数的降序排列DATA按数据集中数据出现的次序排列EXTERNAL|FORMATTED按数据输出格式值的次序排列第79页/共89页第七十九页,共90页。FOR

59、MCHAR(1,2,7)= 符号串: 1规定垂直线字符; 2规定水平线字符; 7规定水平与垂直交叉线字符。 通常(tngchng)情况下的FORMCHAR=选项:FORMCHAR(1,2,7)= | - +; 表格没有轮廓线和分隔线的FORMCHAR=选项:FORMCHAR(1,2,7)= ; /* 三个空格 */ 第80页/共89页第八十页,共90页。 例16.6 按格式化值的顺序排列。 proc format; value $sfmt M = male F =female; proc freq data= order=formatted; table sex; format sex $sfmt.; run; 例中,计算(j sun)数据集中变量SEX的分布,并以格式化值的顺序排列。 第81页/共89页第八十一页,共90页。 FREQ 过程 累积(lij) 累积(lij) Sex 频数 百分比 频数 百分比 -第82页/共89页第八十二页,共90页。WEIGHT语句语句(yj) WEIGHT variable; 该语句规定一个该语句规定一个WEIGHT变量,它的值表示相应变量,它的值表示相应(xingyng)观观测的权数。该变量的值应大于零。若这个值测的权数。该变量的值应大于零。若这个值0或缺失,假定该

温馨提示

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

评论

0/150

提交评论