苏州大学SAS实验_第1页
苏州大学SAS实验_第2页
苏州大学SAS实验_第3页
苏州大学SAS实验_第4页
苏州大学SAS实验_第5页
已阅读5页,还剩7页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

苏州大学数学科学学院统计计算与SAS软件包实验报告姓名:学号:年级:日期:实验4sql和iml过程实验目的:掌握sql和iml过程的基础部分实验内容:SQL过程SQL的SELECT语句及实例SQL的CREATE语句及实例SQL的添加,删除,修改记录的语句及实例SQL的对字段(也就是变量)的操作(增加,删除,修改等)IML过程IML中矩阵的输入及显示IML中矩阵的拼接(水平及垂直拼接)IML中矩阵的基本运算(矩阵的加减乘,求逆。矩阵的数乘)IML中矩阵关于行,列求和,求平均,取最大值,最小值等IML中创建SAS数据集结果与分析1,1SELECT语句使用SELECT语句可以识别、检索和操作表中的数据,使用SELECT子句可以设定查询条件。SELECT语句格式SELECT<DISTINCT>object-item<,...object-item> <INTOmacro-variable-specification<,...macro-variable-specification>> FROMfrom-list <WHEREsql-expression> <GROUPBYgroup-by-item<,...group-by-item>> <HAVINGsql-expression> <ORDERBYorder-by-item<,...order-by-item>>;选择所有列(变量)procsqloutobs=3;/*输出三条观测*/select*/*可用*号表示所有变量*/fromsashelp.class;quit;选择特定列。procsqloutobs=3;selectname,sexfromsashelp.class;quit;CreateTable语句创建一个表。用列定义方式创建表语句格式:CREATETABLEtable-name (column-specification<,...column-specification|constraint-specification>);procsqloutobs=3;title'创建数据集';createtablenewclassasselectname,sex,height,weightfromSASHELP.CLASS;quit;PROCSQL中使用INSERT语句将观测行插入表中。可以使用SET子句或者VALUES子句来设定行的信息。用SET子句插入观测语句格式:INSERTINTOtable-name|sas/access-view|proc-sql-view<(column<,...column>)>SETcolumn=sql-expression<,...column=sql-expression><SETcolumn=sql-expression<,...column=sql-expression>>;procsql;insertintonewclasssetname='张三',sex='M',height=149setname='王五',sex='F',height=120;quit;用VALUES子句插入行语句格式:INSERTINTOtable-name|sas/access-view|proc-sql-view<(column<,...column>)>VALUES(value<,...value>)<...VALUES(value<,...value>)>;procsql;insertintonewclass/*setname='张三',sex='M',height=149setname='王五',sex='F',height=120; */values('aabb','M',133,150)/*values方式给出的值必须与数据集中的变量个数相同*/values('李四','M',118,88);quit;更新表中数据语句格式:PORCSQL;UPDATEtable-name|sas/access-view|proc-sql-view<ASalias> SETcolumn=sql-expression<...column=sql-expression> <SETcolumn=sql-expression<...column=sql-expression>> <WHEREsql-expression>;用不同方式更新表中观测procsql;updatenewclasssetheight=height+10whereheight<90;updatenewclasssetheight=height+5whereheightbetween90and130;updatenewclasssetheight=height+2whereheight>130;select*fromnewclass;quit;删除观测行DELETE语句用于删除表(视图)中的一个或多个观测。procsql;deletefromnewclaswherename='张三';quit;ALTERTABLE语句可以增加、修改、和删除表中的列。注意,只能在表中使用该语句,而不能在视图中使用。增加列语句格式:PROCSQL<option(s)>; ALTERTABLEtable-name <ADD<CONSTRAINT>constraint-clause<,...constraint-clause>> <ADDcolumn-definition<,...column-definition>>增加身高体重比这个变量procsql;altertablenewclassaddwhrationumlabel='身高体重比'format=6.2;/*只是增加了,但变量的值缺失*/updatenewclasssetwhratio=weight/height;/*修改变量的值*/select*fromnewclass;quit;修改列语句格式:ALTERTABLEtable-name <MODIFYcolumn-definition<,...column-definition>>;procsql;altertablenewclassmodifynamechar(30);select*fromnewclass; quit;删除列ALTERTABLEtable-name <DROPCONSTRAINTconstraint-name<,...constraint-name>> <DROPcolumn<,...column>> <DROPFOREIGNKEYconstraint-name> <DROPPRIMARYKEY>DROP子句用来删除表中的列。procsql;altertablenewclassdropwhratio;select*fromnewclass;quit;矩阵的创建(1)元素列示法:注:元素重复的方法:创建矩阵时,如果需要连续重复输入一个数值作为矩阵的元素,则可采用元素重复因子(repeatingFactor)实现。重复因子是重复次数加方括号,放在需要重复的元素之前。(2)赋值法:赋值法通过赋值语句对已有的矩阵进行与运算(包括函数运算)创建矩阵。一般形式:矩阵名=表达式;例如:prociml;a={112,344,556};/*元素列示法*/b={[2]12,3[2]4,[2]56};/*有重复元素时的列示法*/c=2#b;/*赋值法*/printa,b,c;/*按列排列*/printabc;/*按行排列*/quit;矩阵的拼接||中缀水平拼接将具有相同行数的两个矩阵水平拼接为一个矩阵//中缀垂直拼接将具有相同列数的两个矩阵垂直拼接为一个矩阵矩阵的基本运算算符类型功能举例-前缀矩阵取负号+中缀矩阵相加特例:A+1,将A的各个元素加1-中缀矩阵相减特例:A-1,将A的各个元素减1:中缀创建指标向量I=7:10创建行向量i=(78910)*中缀矩阵相乘#中缀矩阵逐元素相乘特例:A#3,将A的各个元素乘3@中缀矩阵直积又称Kroneck积**中缀矩阵次方A**2=A*A必须为方阵##中缀逐元素次方A##2将A的每个元素平方;A##B将A的每个元素按对应的B中元素取次方。/中缀逐元素相除特例:A/2将A的各个元素除以2,而2/A则是将A的各个元素除2得出的矩阵矩阵关于行,列求和,求平均,取最大值,最小值等算符功能+相加#相乘##平方和<>最大><最小<:>最大值位置>:<最小值位置:均值由矩阵创建SAS数据集用CREATE语句和APPEND语句可以从矩阵创建SAS数据集,矩阵的列形成数据集的变量,行形成数据集的观测。一个n×m矩阵形成具有m个变量和n个观测的数据集。CREATE语句打开一个新数据集作为输入输出数据集,APPEND语句把数据写入到数据集之内。1)带有From选型的CREATE语句格式:CREATESAS数据集名FROM矩阵名<[Colname=列变量名]>;APPEMDFROM矩阵名;•选项Colname=列变量名给出SAS数据集的变量名,其中的列变量名以矩阵形式给出,如Colname={‘age’}、Colname={‘age’‘weight’}等等。如果缺省该选项,则SAS数据以Col1、Col2,……,为变量名prociml;usesashelp.class;readallvar{nameageheightweight};htwt=height/weight;new=age||htwt;createratiofromnew[colname={'age''h_w'}];appendfromnew;closeratio;quit;procprint;run;2)带有VAR从句的CREATE语句由于一个矩阵不能包含不同类型的数值(数值性和字符型),因此不能用htwt和name形成矩阵,也就不能用CREATEFROM语句创建包含name和htwt的数据集。采用带VAR从句的CREATE命令可以克服这一缺陷。格式:CREATESAS数据集名VAR{矩阵名列表};APPEND;•VAR从句中的矩阵必须是列向量,矩阵名之间用空格隔开,如果给出的矩阵多于一列,则SAS将所有列垒叠为一列,作为SAS数据集的列。prociml;usesashelp.class;readallvar{nameageheightweight};htwt=height/weight;c

温馨提示

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

评论

0/150

提交评论