ATA步数据集操.ppt

上传人:小飞机 文档编号:5415957 上传时间:2023-07-05 格式:PPT 页数:115 大小:696.50KB
返回 下载 相关 举报
ATA步数据集操.ppt_第1页
第1页 / 共115页
ATA步数据集操.ppt_第2页
第2页 / 共115页
ATA步数据集操.ppt_第3页
第3页 / 共115页
ATA步数据集操.ppt_第4页
第4页 / 共115页
ATA步数据集操.ppt_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《ATA步数据集操.ppt》由会员分享,可在线阅读,更多相关《ATA步数据集操.ppt(115页珍藏版)》请在三一办公上搜索。

1、清华大学经济管理学院 朱世武,Zhu ShiwuSchool of Economics and Management,Tsinghua University,第4章 DATA数据集操作(核心),本章内容提要,创建数据集语句DATA数据行引导语句CARDS与CARDS4输出语句PUT读入已存在SAS数据集语句SET横向合并数据语句MERGEBY语句删除变量语句DROP与保留变量语句KEEP更改变量名语句RENAME与保留数值语句RETAIN输出外部文件语句FILE定义外部数据文件语句INFILE更新数据语句UPDATE(不讲)修改数据语句MODIFY(不讲)数据导出,创建数据集语句DATA,语句

2、格式 DATA;DATA view-name/VIEW=view-name);DATA data-set-name/PGM=program-name);DATA PGM=program-name();DATA VIEW=view-name();DESCRIBE;,选项说明,这里只给出常用选项的说明,其它选项说明可以从SAS系统帮助中查找。,例4.1 规定要创建的SAS数据集。data;/*系统自动规定数据集名datan*/Data a;/*创建临时数据集a*/data ResDat.a;/*创建永久数据集resdat.a*/data data1 data2;/*创建两个临时数据集data1和d

3、ata2*/data _null_;/*特殊名,不创建SAS数据集,用于输出*/Run;,例4.2 数据集选项举例。data new(drop=var1);/*去掉数据集new中变量var1*/data new(keep=_numeric_);/*保留数据集new中所有数值变量*/data new(label=股本变动历史);/*规定数据集new标签名为”股本变动历史”*/data new(rename=(var1=u var2=v);/*将数据集new中变量var1和var2更名为u和v*/data book(index=(author subject);/*数据集book对变量author

4、 subject建立索引*/,例4.3 创建DATA步数据视窗文件。data class/view=class;set Resdat.class;run;例4.4 存储被编辑程序。data class1(keep=name age weight)/pgm=cl;/*cl是被存贮的SAS程序*/set ResDat.class;run;,NOTE:已在文件 CL 中保存了 DATA STEP 程序。NOTE:存储的 DATA STEP 程序无法在不同的操作系统下运行。,例4.5用DATA步执行一个被存贮的编辑程序。data pgm=cl;Run;,NOTE:DATA STEP 程序加载自文件CL

5、。NOTE:从数据集 RESDAT.CLASS.读取了 19 个观测NOTE:数据集 CLASS1 有 19 个观测和 3 个变量。,特殊数据集名,_data_(省略数据集名),data _data_;/*等价于语句data;*/系统自动为数据集赋名:data1,data2,datan.,_null_一般和PUT语句一起用。由PUT输出结果,只输出到LOG窗口,不会产生SAS数据集。,80 data _null_;81 x=exp(5);82 y=log(10);83 put x=y=;84 run;x=148.4131591 y=2.302585093NOTE:“DATA 语句”所用时间(总

6、处理时间):实际时间 0.03 秒 CPU 时间 0.00 秒,例4.6 不产生数据集。data _null_;x=exp(5);y=log(10);put x=y=;run;,_last_ _last_是SAS系统的一个自动变量,取值为最新创建的SAS数据集名。,例4.7 查看最新创建的SAS数据集。data a;set _last_;run;,一个DATA语句下多个数据集名,例4.8 观测子集的形成。data FemaleSt MaleSt;set ResDat.class;if sex=F then output FemaleSt;else output MaleSt;run;,例中,根

7、据条件产生2个观测子集,名字分别为女同学信息数据集FemaleSt和男同学信息数据集MaleSt。,例4.9 变量子集的形成。data height(keep=name height)weight(keep=name weight);set ResDat.class;run;,一个DATA语句下多个数据集名,例中,根据条件产生2个变量子集,名子分别为height,weight,每个数据集由KEEP语句保留两个变量。,数据行引导语句CARDS与CARDS4,CARDS语句或DATALINES语句告诉SAS系统下面跟着的是数据行。数据行之前用CARDS语句或DATALINES语句。语句格式:CAR

8、DS;或DATALINES;数据行,例4.10 数据行之前用CARDS语句。data;input var1 var2 var3$;cards;16 20 First;,数据行中含有分号时,必须用CARDS4或DATALINES4语句。语句格式:Cards4;或DATALINES4;数据行;,例4.11 数据行中含有分号时用CARDS4语句。data;input var1$var2$var3$;cards4;A;B(;);,Obs var1 var2 var3 1 A;B 2(;),结果如下:,输出语句PUT,PUT语句输出信息到:SAS系统的LOG窗口;SAS系统的OUTPUT窗口;FILE语

9、句规定的外部文件。,简单方式:PUT;PUT;列方式:PUT start-column;格式化方式:PUT start-column;PUT variable format.;PUT(variable-list)(format-list);列表方式:PUT variable;PUT character-string;PUT variable format.;命名方式:PUT variable=;PUT variable=start-column;,语句格式,选项说明,表4.1 变量及其格式说明,例4.12用PUT语句产生的输出结果及其比较。data _null_;put 132*_;/*在lo

10、g窗口输出132个下划线_*/put 100*1;/*在log窗口输出100个1*/run;data _null_;input x y z;put _infile_;/*输出最新的数据行到SAS Log窗口*/cards;1-5 90 3 710 2 8;run;,LOG窗口输出结果:,data _null_;input x y z;put _all_;cards;1-5 90 3 710 2 8;,LOG窗口输出结果:,例4.13其它控制输出格式举例。Proc sort data=sashelp.class out=class;By sex;Run;data _null_;Set class

11、;by sex;file print;put name 1-8 12 sex;if last.sex then put/This is the last of sex$_page_;run;,第一页,第二页,输出窗口显示:,Alice FBarbara FCarol FJane FJanet FJoyce FJudy FLouise FMary FThis is the last of F,Alfred MHenry MJames MJeffrey MJohn MPhilip MRobert MRonald MThomas MWilliam MThis is the last of M,dat

12、a;put Example of overprint overprint-;run;,LOG窗口输出结果:,Example of overprint-,列方式输出,LOG窗口输出结果:100.00 300.000,例4.14 控制输出的列位置。data a;a=100;b=300;put a 10-16.2 b 20-26.3;run;,语句格式:PUT start-column;,列表方式输出,语句格式:PUT variable;PUT character-string;PUT variable format.;修饰符说明:n*规定后面格式重复n次;:规定后面格式输出变量值时去掉前后的空格。

13、,LOG窗口输出结果:134,569.24 18,969.06 3,592.19,例4.15应用举例。data a;x1=134569.236;x2=18969.06;x3=3592.191;put(_all_)(3*comma10.2);run;,data a;x1=134569.236;x2=18969.06;x3=3592.191;put _all_;run;,格式化输出,语句格式:PUT start-column;PUT variable format.;PUT(variable-list)(format-list);,例4.16应用举例。data a;input name,LOG窗口

14、输出结果:53 data a;54 input name,上面程序也可以写成:data a;input name 但第一种方法的效果好。,LOG窗口输出结果:61 data a;62 input name,读入已存在SAS数据集语句SET,SET语句从一个或多个已存在的SAS数据集中读取观测值,并将这些观测组合在一个或多个新的数据集中。语句格式:SET/UNIQUE;一个DATA步中可以有多个SET语句,一个SET语句中可以有任个SAS数据集。,选项说明,例4.17选项说明若干举例。规定临时变量选项Point=:data a;set ResDat.class;obs=_n_;data;do n

15、=3,5,7,4;set a point=n;/*读入数据集a中的第3,5,7,4观测*/output;end;stop;/*使用选项point=时,经常要用stop语句来终止data步的执行*/proc print;run;使用选项point=时,经常要用stop语句来终止data步的执行。因为使用set语句时,指针只有在遇到数据集的最后一条观测才会停止执行,而这里选择读入的最后一条观测一般情况下并不是数据集的最后一条观测,所以,需要专门用stop语句停止指针执行,否则会陷入死循环。,去掉stop语句:do end 循环不能让指针达到最后一条观测值,set语句会让循环持续执行,形成死循环。d

16、ata;do n=3,5,7,4;set a point=n;/*读入数据集a中的第3,5,7,4观测*/output;end;run;使用中断工具终止程序运行。,data;set a;do n=3,5;output;end;run;/*n在新创建的数据集中*/,例4.18 连续两个set语句。data one;input x y$;cards;1 Groucho3 Harpo5 Kart;data two;input X Z$;cards;2 Chico4 Zeppo;Data three;Set one;Set two;Run;,数据集one:X Y 1 Groucho3 Harpo5 K

17、art,数据集two:X Z2 Chico4 Zeppo,数据集three:X Y Z2 Groucho Chico4 Harpo Zeppo,例4.19 数据集选项in=var。data a;set one(in=one)two(in=two);in1=one;in2=two;run;,数据集a:,规定临时变量选项NOBS=:data a;do obsnum=1 to last by 3;/*临时变量为last*/set ResDat.class point=obsnum nobs=last;output;end;stop;run;,如何找数据集的观测个数:data a;a=nobs;set

18、 ResDat.class nobs=nobs;if _n_=a;run;如何找数据集的最后一个观测值:data a;set ResDat.class nobs=nobs;if _N_=NOBS;run;,找数据集最后一个观测值更简单的方法:data a;set ResDat.class end=obs_last;if obs_last=1;run;输出数据集的最后一个观测值:data a;set ResDat.class End=lastobs;if lastobs;x=lastobs;/*将临时变量lastobs的值赋给X*/put last observation:_all_;run;,

19、例4.20 数据集选项说明若干举例。保留部分变量:data a;set ResDat.Class(keep=name sex age);run;data b(keep=name sex age);set ResDat.Class;run;data c;set ResDat.Class;keep name sex age;run;上述三段程序的结果相同。注意,但第三段程序用的是KEEP语句,并不是数据集选项的应用。保留部分变量时可生成多个变量子集,如下:data weight(keep=name weight)height(keep=name height);set ResDat.class;r

20、un;/*此程序将保留变量同时生成两个变量子集*/,保留部分观测:data males;set ResDat.class;where sex=M;run;data males;set ResDat.class;if sex=M then output;run;data males;set ResDat.class;if sex=M then delete;run;,data FemaleSt MaleSt;set ResDat.class;if sex=F then output FemaleSt;else if sex=M then output MaleSt;run;/*此程序将保留部分观

21、测同时生成两个观测子集*/,保留部分观测时可生成多个观测子集,如下:,例4.21数据的纵向合并,相同变量的数据集合并。data qttn;set ResDat.stk000001 ResDat.stk000002;run;例4.22数据的纵向合并,不同变量的数据集合并。data a;set ResDat.class ResDat.stk000001;run;,例4.23 按顺序交替连接数据。data xyz;input id$x y z;cards;A 12 3 45 B 11 2 34C 10 4 76D 23 7 16;data uvw;input id$u v w;cards;A 20

22、5 50 B 12 3 32C 16 8 99D 27 11 15;,proc sort data=xyz;by id;proc sort data=uvw;by id;run;data a;set xyz uvw;by id;proc print noobs;run;,结果显示:,横向合并数据集语句MERGE,MERGE语句将多个数据集中的观测合并为新数据集中的一个观测。SAS系统合并观测的方式依赖于BY语句的使用。语句格式 MERGE data-set-name-1 data-set-name-2;,选项说明,应用举例,例4.24 一对一合并 data a;merge ResDat.cla

23、ss ResDat.stk000001;run;例中,一对一合并时,不需要BY语句。例4.25 匹配合并 data a;merge ResDat.stk000001(keep=date clpr rename=(clpr=clpr000001)ResDat.stk000002(keep=date clpr rename=(clpr=clpr000002);by date;run;例中,匹配合并必须有BY语句。,例4.26 使用数据集选(in=),选择股票代码为000001,200011,600601和900903的首次发行与上市数据。data stkcd;input stkcd$6.;card

24、s;000001 200011600601900903;data iissulst1;merge resdat.iissulst stkcd(in=id);if id;/*选择满足条件股票的首次发行与上市数据*/by stkcd;run;,BY语句,数据步中,BY语句规定分组变量。用于控制SET,MERGE,UPDATE或MODIFY语句的操作。语句格式 By Variable-1 Variable-N;,选项说明 BY语句概念,FIRST.变量和LAST.变量,SAS系统对每个BY组创建两个自动变量:First.variable 和 Last.variable,用来标识每个BY组的第一个和最

25、后一个观测。对于一个BY组的第一个观测值,First.variable取1,其余取0.对于一个BY组的最后一个观测值,Last.variable取1,其余取0.这些变量不含在新产生的数据集中。,例4.28 保留各BY组的最后一个观测值。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;/*保留每月最后一个观测值*/run;,删除变量语句DROP与保留变量语句KEEP,DROP语句

26、规定输出数据集中要删除的变量,它对DATA步正在创建的所有SAS数据集都适用。语句格式:DROP variable-list;其中:varible-list规定输出数据集中要删除的变量。,例4.29 Drop语句与数据集中的drop=选项。data a;set ResDat.class;drop sex age;/*drop语句*/proc print;run;data a(drop=sex age);/*数据集中的drop=选项*/set ResDat.class;proc print;run;例中,两段程序的效果相同。DROP语句告诉SAS系统新建数据集A中将删除SEX 和AGE两个变量。

27、,KEEP语句,KEEP语句规定输出数据中要保留的变量,它对DATA步正在创建的所有SAS数据集都适用。语句格式:KEEP variable-list;其中:variable-list规定输出数据集中要保留的变量。,例4.30 Keep语句与数据集中的keep=选项。data a;set ResDat.idx000001;keep date clpr;/*keep语句*/proc print data=a(obs=10);run;data a(keep=date clpr);/*数据集中的keep=选项*/set ResDat.idx000001;proc print data=a(obs=1

28、0);run;,DROP和KEEP语句使用规则,同一个DATA步不用同时使用DROP和KEEP语句;RENAME语句和KEEP或DROP语句一起使用时,KEEP语句和DROP语句会首先起作用。即,在KEEP语句或DROP语句中使用是旧名字。,例4.31 RENAME语句和KEEP语句一起使用时,KEEP语句使用旧变量名时程序运行正常,keep语句使用新变量名时程序运行出错。data a;set ResDat.Idx000001;keep date clpr;/*使用旧变量名,程序运行正常*/rename clpr=clpr_SH;run;data a;set ResDat.Idx000001;

29、keep date clpr_SH;/*使用新变量名,程序不能正常运行*/rename clpr=clpr_SH;run;,Keep语句在rename语句的后面也是先起作用,data a;set ResDat.Idx000001;rename clpr=clpr_SH;keep date clpr_SH;/*使用新变量名,程序不能正常运。Keep语句在rename语句的后面也是先起作用*/run;,数据集选项DROP=和KEEP=使用规则,数据集选项drop=和keep=的使用规则基本同drop和keep语句的使用规则。但更灵活,实现同样的功能,对于不同的数据集,新旧名的使用规则也不同。KEE

30、P语句或DROP语句只能在DATA步中使用。为了在PROC步中保留变量或删掉变量,必须使用数据集选项KEEP或DROP。,例4.32 读入数据集中的keep=选项使用旧变量名。使用旧变量名,程序运行正常data a;merge ResDat.Idx000001(keep=date clpr rename=(clpr=clpr_SH)ResDat.Idx399001(keep=date clpr rename=(clpr=clpr_SZ);by date;run;使用新变量名,程序运行出错data a;merge ResDat.Idx000001(keep=date clpr_SH rename

31、=(clpr=clpr_SH)ResDat.Idx399001(keep=date clpr_SZ rename=(clpr=clpr_SZ);by date;run;,例4.33 新创建数据集中的keep=选项使用新变量名。如上例中的错误程序,改为新创建数据集中的选项keep=,要用新变量名。data a(keep=date clpr_SH clpr_SZ);merge ResDat.Idx000001(rename=(clpr=clpr_SH)ResDat.Idx399001(rename=(clpr=clpr_SZ);by date;/*程序运行正常*/run;,更改变量名语句RENAM

32、E,RENAME语句可以更改多个变量的名字。语句格式:RENAME old-name-1=new-name-1;其中:old-name规定输入数据集中出现的变量名字;new-name规定变量的新名字。由于变量的新名字在输出的数据集中才起作用,所以,在当前DATA步的程序语句须使用老名字。,例4.34 RENAME更改多个变量名data a(keep=date open low high close);set ResDat.Idx000001;rename oppr=open lopr=low hipr=high clpr=close;proc print data=a(obs=3);run;,

33、应用举例,OUPPUT窗口显示,保留数值语句RETAIN,RETAIN语句来规定单个变量,变量列表,或数组元素的初始值。没有为retain语句的变量赋新值时会保留该变量前面的值。语句格式:RETAIN;选项说明:,例4.35 没有选项时,规定用INPUT语句或赋值语句创建的所有变量值从DATA步的这次执行到下一次重复时被保留。于是数据值在一些观测中可能保留了本应为缺失值的其它值。data a;input id;retain;if id=1 then test=pass;if id=2 then test=fail;cards;1 2 2 2 3 5 1 5 3 1;proc print noo

34、bs;run;,打印输出结果为:例中,当ID的值为1或2时,都是对的。但当ID等于1和2以外的值时,没有一个IF条件是真的,故TEST没有接收新的值。由于有RETAIN语句,所以,TEST就保持从上一观测中得到的值,这样就产生错误。若从这段程序删除RETAIN语句,当ID值不等于1或2时TEST的值为空格(缺失值).,data a;打印输出结果为:input id;if id=1 then test=pass;if id=2 then test=fail;cards;1 2 2 2 3 5 1 5 3 1;proc print noobs;run;用_ALL_,_CHAR_或_NUMERIC_

35、规定变量列表时,只有在RETAIN语句之前定义的变量才有效。,例4.36 对于没有用圆括号括起来初始值,SAS系统对前面列出的所有元素赋初始值。retain month1-month5 1 year 0 a b c XYZ;例句中,RETAIN语句设置MONTH1至MONTH5的初值为1,变量YEAR的初值为0,字符变量A,B,C的初值为XYZ。例4.37对于用圆括号括起来初始值时,SAS系统对括号前的第一个变量赋初值。retain month1-month5(1);例句中,RETAIN语句分配初始值1给变量month1,而变量month2至month5初始值被置为缺失值。,例4.38 初始值

36、列表的用法。retain varl-var4(1 2 3 4);retain varl-var4(1,2,3,4);如果出现变量个数比初值个数多,剩余的变量用缺失值作为初始值,同时SAS系统发布一个警告信息。,Retain语句是一个功能强大的语句,利用retain语句可以很方便地实现观测值累乘、缺失观测填充等复杂的数据处理。如下例所示:,例4.39 变量观测值累乘。Data a;Set resdat.class;Retain mheight 1;Mheight=mheight*height;Run;,Obs Name Sex Age Height Weight mheight 1 Alfred

37、 M 14 69.0 112.5 69.00 2 Alice F 13 56.5 84.0 3898.50 3 Barbara F 13 65.3 98.0 254572.05 4 Carol F 14 62.8 102.5 15987124.74 5 Henry M 14 63.5 102.5 1015182420.99 6 James M 12 57.3 83.0 58169952722.73 7 Jane F 12 59.8 84.5 3478563172819 8 Janet F 15 62.5 112.5 2.174101983E14 9 Jeffrey M 13 62.5 84.0

38、 1.358813739E16 10 John M 12 59.0 99.5 8.017001062E17 11 Joyce F 11 51.3 50.5 4.112721545E19 12 Judy F 14 64.3 90.0 2.644479953E21 13 Louise F 12 56.3 77.0 1.488842214E23 14 Mary F 15 66.5 112.0 9.900800722E24 15 Philip M 16 72.0 150.0 7.12857652E26 16 Robert M 12 64.8 128.0 4.619317585E28 17 Ronald

39、 M 15 67.0 133.0 3.094942782E30 18 Thomas M 11 57.5 85.0 1.7795921E32 19 William M 15 66.5 112.0 1.183428746E34,例4.40 缺失值填充。变量X有缺失值,由前面的值填充变量X的缺失值。,data a;input x;cards;100.235.5;run;,data a1;set a;retain x1;if x=.then x1=x;/*在x=.的情况下为x1赋值x,其它情况并没有为x1赋值,由于retain语句的作用,x1保留前面的值,这样x1不会有缺失值,起到填充的作用*/x=x

40、1;drop x1;run;,Obs x 1 100 2 100 3 100 4 2 5 35 6 35 7 35 8 5,数据集A1,Retain语句的一个很好应用案例是填充变量的缺失值,输出外部文件语句FILE,FILE 语句用于规定将要输出的外部文件。FILE 语句一般要与PUT语句配合使用。同一个DATA步可以用多个FILE语句。FILE语句是可执行语句,因而可以用在条件(IFTHEN)过程中。语句格式 FILE file-specification;FILE-SPECIFICATION选项说明:,OPTIONS选项说明(部分):,例4.41 filename=variable选项应用

41、 data a;file print filename=xxx;/*输出到OUTPUT窗口,put语句打开的文件名为print*/put hello;/*OUTPUT窗口将输出hello*/name=xxx;/*数据集a中有一个变量name和一个观测值print*/run;数据集a,data a;file d:a.txt filename=xxx;/*输出到文件d:a.txt,put语句打开的文件名为d:a.txt*/put hello;/*文件d:a.txt的内容为:hello*/fname=xxx;run;,数据集a,例4.42 输出规定格式的外部文本文件。data;set ResDat.

42、lstkinfo;a=%a(;b=,;c=);file D:stock.txt;put a$stkcd$b$lstknm$c$;run;例中程序产生股票宏文本文档。data;set ResDat.lstkinfo;a=%a(;b=,;c=);file D:stock.txt;put a stkcd b lstknm c;run;,定义外部数据文件语句INFILE,INFILE语句用来定义一个外部数据文件,文件中的数据用INPUT语句读取。外部文件可以是已存在的磁盘文件,也可以是从键盘上输入的数据行。语句格式 INFILE file-specification;FILE-SPECIFICATIO

43、N选项说明:EXTERNAL FILE和 FILEREF选项类似FILFE语句的相应选项。CARDS|CARDS4|DATALINES|DATALINES4选项指明输入数据为CARDS(CARDS4,DATALINES,DATALINES4)后面的数据流,而非来自外部数据文件。,大部分选项的作用和FILE的一致。下面只介绍几个INFILE独有的选项。OPTIONS选项说明,例4.43 DELIMITER=选项应用 data a;infile cards delimiter=,;input x y z;cards;3,6,91,3,58,8,8;例中,要输入的数据用逗号分隔,创建SAS数据集时用

44、选项DELIMITER=,。,数据集a,例4.44DSD选项应用 data scores;infile cards delimiter=,;input test1 test2 test3;cards;91,87,9597,92,1,1;例中,分隔符为逗号,但第二个观测值的两个相邻分隔符之间还有缺失值,没有DSD选项时,这两个相邻的分隔符组成一个分隔符,于是,输入数据时会出错。,上例加上DSD选项,将两个相邻分隔符之间的数作为缺失值处理 data scores;infile cards delimiter=,DSD;input test1 test2 test3;cards;91,87,9597

45、,92,1,1;通常情况下,同时加上MISSOVER和 DSD两个选项是良好的编程习惯。,应用举例,例4.45登录锐思RESSET数据库网站(),选择股票库的退市信息表及TXT创建SAS数据集下载格式,得到利用INFILE语句导入外部数据文件的标准程序。,Data Res_sas.DELINFO_1(label=退市信息);Infile delimiter=09x Missover Dsd lrecl=32767 firstobs=2;Format Comcd$7.;Format stkcd$6.;Format Lstknm$12.;Format Stkcdotrd$6.;Format del

46、stDt YYMMDD10.;Format Lstdt YYMMDD10.;Format Stkcdbfdelst$6.;,Format Exchflg$1.;Format Stktype$1.;Format Thimktflg$1.;Format ISIN$12.;Format nobs 10.;Informat Comcd$7.;Informat stkcd$6.;Informat Lstknm$12.;Informat Stkcdotrd$6.;Informat delstDt YYMMDD10.;Informat Lstdt YYMMDD10.;Informat Stkcdbfdels

47、t$6.;Informat Exchflg$1.;Informat Stktype$1.;Informat Thimktflg$1.;Informat ISIN$12.;Informat nobs 10.;Label Comcd=公司代码;Label stkcd=股票代码;Label Lstknm=最新股票名称;,Label Stkcdotrd=交易时股票代码;Label delstDt=退市日期;Label Lstdt=股票上市日期;Label Stkcdbfdelst=退市前代码;Label Exchflg=交易所标识;Label Stktype=股票类型;Label Thimktflg=

48、三板市场标识;Label ISIN=ISIN编码;Label nobs=观测序号;Input Comcd$stkcd$Lstknm$Stkcdotrd$delstDt Lstdt Stkcdbfdelst$Exchflg$Stktype$Thimktflg$ISIN$nobs;Run;,例中,09x是TAB键的十六进制表示。标准程序除Infile语句的选项外,还包括由Format,InFormat及Label语句规定变量的输出格式、输入格式及标签等。,更新数据语句UPDATE,UPDATE语句通过修改数据集中的观测来更新一个主数据集。语句格式UPDATE master-data-set tra

49、nsaction-data-set;同BY语句一起使用的格式:UPDATE master-data-set transaction-data-set;BY variable;,选项说明,MERGE语句和UPDATE语句的比较,MERGE语句和UPDATE语句都能用于更新SAS数据集。当第二个数据集中有缺失数据时,若用MERGE语句,则主数据集中的相应数据自动更新为缺失。若用UPDATE语句,则可以通过选项Updatemode=控制。UPDATE语句通过修改数据集来修改或更新变量,也可以添加新变量。,应用举例,例4.46修改数据集。data master;/*创建主数据集master*/inpu

50、t id$name$age sasgrp$height sex$;cards;9211 GU 20 Y 170 F9212 YUAN 19 Y 165 F9213 HU 16 N 163 F9214 WANG 21 Y 178 M9215 ZHU 22 N 176 M;data trans;/*创建修改数据集trans*/input id$age sasgrp$height;cards;9211.N.9212.Y 1689213 18 N.9214.Y 1809215 23 Y 176;,data new;update master trans;by id;proc print;run;,更新

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号