第一篇:常用sas语句总结
Engine(引擎)是一种访问架构,SAS系统通过它迅速地对其它数据库管理系统中文件进行读入和写出。
1.LIBNAME语句
1.1解读
定义 SAS 逻辑库。具体地说,它可以
(1)向 SAS 标识 SAS 逻辑库
(2)将引擎与逻辑库关联
(3)让您指定逻辑库的选项
(4)为逻辑库指定逻辑库引用名
通俗得讲,LIBNAME语句把一个libref(库标记名)和一个目录联系起来,使用户可以在SAS语句中使用库标记来指示这个目录。提交该程序时自动引用该 SAS 逻辑库 1.2 语句格式
1、LIBNAME libref
2、LIBNAME libref Clear;
3、LIBNAME libref |_ All_ List;三种格式反映了LIBNAME语句的三种用法 选项说明
LibrefEngineSas-Data-LibraryAccess=Readonly|TempClear_All_List
规定逻辑库规定引擎规定主机系统下一个有效的物理地址规定逻辑库为只读或可修改属性清除与库标记的联系列出所有逻辑库的属性在Log窗口列出逻辑库的属性。2.length语句
SAS变量的基本类型有两种:数值型和字符型。数值型变量在数据集中的存贮一般使用8个字节。SAS的字符型变量缺省的长度是8个英文字符,可以使用LENGTH语句指定变量长度,LENGTH语句一般应出现在定义变量的Input语句之前,格式为: LENGTH 字符型变量名 $长度 例如:length name $20 ;
3.input 语句
3.1解读
INPUT语句 用于向系统表明如何读入每一条记录。它的主要功能有:读入由语句指定的数据列;为相应的数据域定义变量名;确定变量的读入模式(共有四种模式:column模式,formatted模式,list模式及named模式)。
input语句执行后,SAS将读取的数据暂时先保存在内存缓冲区,然后执行后面的语句,后面的语句可以对暂存在内存缓冲区中的变量值进行修改,到最后才将整条数据写入数据集,写入数据集的数据就不能在当前data步中再修改。
注意:INFILE语句用于确定一个包含原始数据的外部文件,必须在执行INPUT语句前执行,如果要在程序中直接嵌入数据,就用CARDS语句代替INFILE语句。
3.2 语句格式(Column模式)
INPUT variable <$> start-column<-end-column><.decimals><@|@@>;
说明: variable 变量名
$ 跟在变量后面,表明这个变量是字符型变量 start-column 起始列号
end-column 结束列号,如果变量值只包含一列,则可省略
.decimals 如果输入值中没有包含一个隔开整数部分与小数部分的小数点,decimals用来显性的指明小数部分 @ 单尾符 @@ 双尾符
举例说明:input name $ 1-10 pulse 11-13 waist 14-15 gender $ 16;
4.SET 语句
Set语句可以用来读取单个数据集中的数据,也可以用来读取多个数据集中的数据拼接SAS新的数据集。程序为:
DATA 新数据集;
SET 输入数据集1 输入数据集2 ….; Run;如果不适用DROP=和KEEP=选项,在新的数据集中将包含所有旧数据集的变量。
5.DO 循环语句
语句一:
DO WHILE(expression);...more SAS statements...END;语句二:
DO UNTIL(expression);...more SAS statements...END;语句三:
DO index-variable=start
DO item-1<,…item-n>
DO over array-name;...more SAS statements...END;例如: data test;
input sc01-sc05;
array s sc01-sc05;
do over s;
s= s*100;
end;
cards;0.95 0.88 0.57 0.90 0.65;这个语句也是SAS比较特殊的循环结构,专用于数组,将数组的每一个元素访问一遍。
6.IMPROT 语句
import过程可以读取的数据有Access数据库、Excel文件和带分隔符的文件。
6.1语法格式
PROC IMPORT
DATAFILE=“filename” | TABLE=“tablename” OUT=
DATAFILE=“filename” 用来指定数据文件的位置,如果是Access则用TABLE=“tablename”指定需要读取的数据表;
OUT= 指定输出数据集的名称;
DBMS=identifier 指定导入数据表的类型;几个常用的DBMS选项如下
ACCESS 读取MS ACCESS2000/2002数据
EXCEL 读取Excel2000/2002数据
CSV 读取逗号分隔的文件
DLM 读取分隔符文件,需要用DELIMITER=指明具体的分隔符
TAB 读取Tab分隔的文件
REPLACE选项替换原来已经存在的数据集,缺省情况下是不替换,并在LOG窗口中予以提示;
6.2 proc import读取带分隔符的文件 语法格式: PROC IMPORT DATAFILE= OUT= DBMS= REPLACE;(Data source statements:)DATAROW=n;DELIMITER=;GETNAMES=YES|NO;说明:
DBMS= 需要指定DLM,逗号分隔文件可省略; DATAROW=n;指定从数据文件的第几行开始读取,该选项缺省情况下,如果getnames=yes则从第二行开始读取,getnames=no从第一行开始读取; DELIMITER=;指定分隔符;
GETNAMES=;告诉SAS是否将数据文件的第一行作为变量读取,该选项缺省为yes。
如果第一行是变量名,而该选项为no则会将列为数值型的第一行读取为缺失值。
当指定getnames=no时,对于DLM文件,则SAS自动将变量命名为VAR1, VAR2,...;对于Excel文件,则SAS自动命名变量为F1, F2, … 举例:
proc import datafile=“C:My Documentsmyfilesdelimiter.txt”
out=mydata
dbms=dlm
replace;
delimiter='&';
getnames=yes;run;6.3 proc import读取Excel文件 语法格式: PROC IMPORT DATAFILE= OUT= DBMS= REPLACE;(Data source statements:)SHEET=;GETNAMES= YES|NO;注:读取Excel时,可以不指定DBMS=选项。举例:
proc import datafile=“c:clinic filesdrug1.xls”
out=drug1;
sheet='lab';
getnames=yes;run;6.4 proc import读取数据库表(如Access)语法格式: PROC IMPORT TABLE= OUT= DBMS= REPLACE;(Data source Statements:)DATABASE= PWD= UID= WGDB= 说明:
DATABASE= 指明数据库存放的路径及名字 UID= 数据库用户名 PWD= 密码 WGDB= 工作组名称 举例:
proc import table=“customers”
out=sasuser.cust
dbms=access97;
uid=“userid”;
pwd=“mypassword”;
database=“c:myfileseast.mdb”;
wgdb=“c:winntsystem32security.mdb”;run;通常情况下,proc import是可以不掌握的,通过视窗操作可能更方便,特不过用proc import能够更精细的控制。在写import过程的时候,要特别注意分号的位置,从最开始的语法格式那里可以看出,proc import后面的一般选项是连在一起写的,中间用空格隔开,最后才以分号结尾;而数据源选项则每一项都要以分号结束。这些地方往往容易出错。
7.CARDS语句
用于直接输入数据,标志着数据块的开始。格式如下:
CARDS;
数据块
;
8.SORT和BY语句
SORT语句将指定的数据集按指定变量排序。使用BY语句可以使生成的数据集按照某个变量排序,但输入数据集必须预先按该变量排序。使用PROC SORT语句可以进行排序,一般形式为:
PROC SORT DATA=数据集 OUT=排序后的数据集; BY 变量; RUN;
e.g.Proc sort date=stockreturn;
by firm date;run;
9.宏
在宏变量前加&来引用宏变量的值。
用一个百分号(%)加宏名称就可以调用该宏。%macro 宏变量名:定义宏变量
%DO
:条件处理至一个匹配的%END出现 %If-%Then /%Else :有条件执行宏
10.MERGE语句
用MERGE语句合并SAS数据集。但是,输入数据集必须预先按该BY变量排序。语句一般形式为: 式为:
DATA 新数据集 ;
MERGE 输入数据集1 输入数据集2 … ; BY 变量; RUN;
e.g.下图展示合并数据集A、B 的结果:
Data gooddata;Merge stockreturn sample(in=a);By firm;If a=1;Run;注意:这里merge语句使用了两个选项,当一个SAS数据步同时读入多个SAS数据集时,可以使用IN=选项来确定本观测来自哪个数据集,in=选项的一般形式是:SAS-data-set(IN=variable)。其中,variable是一个临时的数值型变量; Variable=0 表示观测不是来自本数据集; Variable=1表示观测是来自本数据集;
在这里使用IN选项的目的就是把所有来自数据集sample的观测输出到新数据集gooddata中。
11.REG语句
REG过程用来进行回归分析。
在MODEL语句中有许多选项,其中的几个选项如下:
CLM
回归估计值0.95置信区间的上界和下界。CLI
因变量预报值的0.95置信区间。
P
由输入数据和回归方程计算预报值。输出观测序号,ID变量(需事先规定ID语句),实际值,预报值和残差。如果已规定了CLM、CLI或R,选项P就不需要了。
R
要求残差分析,输出包括选项P的一切内容外,还有其它一些分析
12.MEANS语句
MEANS对指定的数值变量进行简单的统计描述。13.OPTIONS语句
OPTIONS语句临时改变SAS系统的选项设置。
改变后的选项设置在以后的SAS会话或作业中保持有效,直到再次改变它们。
改变SAS系统选项可以用OPTIONS语句,或用显示管理命令OPTIONS菜单。
语句格式:
OPTIONS option-1 <...option-n>;其中:
option规定要改变的SAS系统选项。
第二篇:SAS基础语法总结
一、DATA语句
DATA语句的作用是表明数据步的开始并给出数据集 的名称。
DATA语句的格式为:
DATA 数据集的名称;
数据集的名称必须以英文字母开始,最长不超过8个字符。
二、CARDS语句
CARDS语句的作用是与“;”呼应,标志数据行的开始与结束。
CARDS语句的格式为:
CARDS;数据行;如果使用CARS语句,在CARDS的后面必须紧跟数据行,并且在一个数据步中最多只能使用一个CARDS语句。
三、INPUT 语句
INPUT语句的作用是描述输入记录中的数据,并把输入值赋给相应的变量。INPUT语句的格式为:
INPUT 数据的变量名、顺序及类型;
用INPUT语句是为了读取外部文件的数据或跟在CARDS语句后面的数据。
SAS默认用INPUT语句读取的是数值类型变量的值。若在变量后加’$’,则该变量为字符串类型变量。
为从一行读入多个观测值,应使用行保持符’@@’限制度数指针,使其保持在这一行上读数,知道数据读完为止。
例如:
Input x y@@;
Cards;
8
;
四、INFILE语句
Infile语句的作用是指明外部数据文件的名称,并从这个外部数据文件中读取数据。
INFILE语句的格式为: INFILE ‘外部数据文件名’;
例如,在D盘上有一个名称为xiao.txt的数据文件,其中数据排列为:
A 3.16 B 2.9 B 5.8 B 3 A 4.9 A 4.17 用 INFILE语句读取数据的代码为:
Data ex;Infile ‘D:xiao.txt’;Input z$ x@@;Proc print;
Run;
五、SET语句
SET语句的作用是按照指定的条件从指定的数据集中读取数据机那里新的数据集获奖两个数据集中的观测值纵向连接建立新的数据集。
SET语句的格式为:
SET 数据集名表;例如,从数据集EX中读取数据建立新的数据集EX1,可编辑语句:
DATA EX1;SET EX;将两个数据集D1和D2中的观测值纵向连接建立新的数据集D3,可编辑语句:
DATA D3;SET D1 D2;
六、MERGE语句
MERGE语句的作用是将两个数据集中的各个观测值横向合并建立新的数据集。
MERGE语句的格式为:
MERGE 数据集名表;例如,将数据集D1与D2中的观测值横向合并建立新的数据集D3,可编辑语句:
DATA D3;MERGE D1 D2;
RUN;
七、DROP语句
DROP语句的作用是指定不写到数据集中的变量。DROP语句的格式为:
DROP 变量名表;如果在DATA步中有DROP语句,那么DROP语句中一出现的变量的观测值被删除,未出现的变量的观测值仍保留在新的数据集中。
八、KEEP语句
KEEP语句的作用是指定要写到数据集中的变量。KEEP语句的格式为:
KEEP 变量名表;如果在DATA步4中有KEEP语句,那么KEEP语句中未出现的变量的观测值被删除,已出现的变量的观测值被保留在西你的数据集中。
九、IF语句
IF语句的作用是使SAS继续处理符合IF条件规定的观测值,因而所得到的数据集是原数据集的子集。IF语句的格式为:
IF 条件表达式;如果表达式的值为真,SAS处理当前的观测值,执行DADA步中的语句,如果表达式的值是假,SAS马上返回到DATA步的开始,不处理当前的观测值,不执行DADA步中的语句。
十、PROC语句
PROC语句的作用是指定需要调用的过程以及该过程的若干选择项。PROC语句的格式为:
PROC SAS的过程名;例如,调用print过程,打印数据集ex的内容:
PROC print data=ex;这里的data=数据集名,用来指定本过程所要处理的数据集名,如缺省则处理最新建立的数据集。在PROC步中,还必须确认一些最基本的信息,包括:(1)处理的数据集名,格式为data=数据集名;(2)所涉及的变量名,格式为 var 变量名;(3)分组处理的标志,格式为 by 组变量名;
十一、CLASS语句
class语句的作用是在分析的过程中定义分类变量,再按分类变量的值分组进行数据分析。
Class语句的格式为:
CLASS 变量名;CLASS语句对数据分析所起的作用类似于by语句,但是它们打印输出的格式不相同,并且by语句要求先对变量排序后才能使用。
十二、FREQ语句
freq语句的作用是规定一个变量,以它的值作为数据集中观测值出现的频数。
FREQ语句的格式为:
FREQ 变量;假定某观测值的FREQ变量的值为n,在分析时,改数据集中这个观测值出现的频数便是n。
若n<1,则观测值不参加分析
若n不是整数,则自动取整。观测值的总数等于FREQ变量的和。
常用的SAS过程步
一、print过程
print过程可以打印一个SAS数据集中的全体或部分观测值,还可以打印数 值变量的综合或部分和。
print过程中经常使用的语句有:
proc print [选择项];
var 变量表;by 变量表;sum 变量表;在proc print 语句中可能出现的选择项有
data=数据集名,如果省略这一选择,则打印最新建立的数据集中的数据。
sum语句被用来求变量表中诸变量的总和。
二、sort过程
SORT过程将SAS数据集中的观测值按一个或多个变量的值进行排序,以便 其他的SAS过程利用by语句对这些观测值进行分组处理,排序后的观测值存放在一个新的SAS数据集中或者代替原来的数据集。在SORT过程中经常使用的语句有:
proc sort [选择项];
by 变量表;在proc sort语句中可能出现的选择项有:
data=数据集名,用来说明要排序的数据集名,如果省略这一选择,则指定最新建立的数据集。
out=数据集名,用来说明要输出的数据集名,如果省略这一选择,则原来的数据集被输出的数据集替换。sort过程默认按升序排列,若要按降序排列,在对应变量前增加选择项descending。
三、FORMAT过程
format过程可以对字符或数值变量定义一个所需要的输出格式,使data步以及含有format的语句的过程步中的变量都受到这一输出格式的限制。
通过proc FORMAT过程所定义的格式包括:(1)将输出值转换成不同的值、数值可以变成字符,字符可以变成另外的字符。(2)使输出值保留一定的小数位,否则输出值将有8个小数位。FORMAT过程由下列语句控制:
PROC FORMAT;
VALUE 格式名 格式的定义;为便于识别,格式名通常是原变量名加fmt
如果原变量是字符串,则应当在格式名前加字符串符号。后面的过程中,如果涉及到某变量的输出格式,必须有语句:
FORMAT 变量名 格式名
四、standard过程
standtard过程按给定的平均值和标准差对SAS数据集中的部分或全体变量进行“标准化”变换,并形成新的数据集。
在standard过程中经常使用的语句有:
proc standard [选择项];
var 变量表;freq 变量表;by 变量表;在proc standard语句中可能出现的选择项有:
data=数据集名,用来说明要“标准化”变换的数据集名,如果省略这一选择,则指定最新建立的数据集。
out=数据集名,用来说明含有“标准化”变量的新数据集名,如果忽略这一选择,SAS将按内部程式给出新的数据集名。
此过程将打印输出每个“标准化”变量的输入频数、平均值及标准差。
五、TRANSPOSE过程
transpose过程将一个数据集进行转置,使行变为列而列变为行,也就是使原数据集中样品的观测值变换成新数据集中变量的观测值,而原数据集中变量的观测值则变成新数据集中样品的观测值。transpose过程的格式为:
proc transpose [选择项];var 变量表;by 变量表;在proc transpose语句中可以出现的选择项有:
(1)data=数据集名,用来说明要转置的数据集名;如果忽略这一选择,则指定最新建立的数据集。
(2)out=数据集名,用来说明转置所建立的心数据集名,如果省略这一选择,SAS将按内部程式给出新的数据集名。
(3)prefix=字母(指定一个新前缀,用来构成新变量名)
(4)name=字母(为含有输入数据集中被转置的变量名的输出数据集中的变量命名,如果省略这一选择,SAS将按内部程式指定)。
在var语句中应列出要被转置的变量名,否则原数据集中未在其他语句中列出的所有数值型变量都将被转置,字符型变量必须在var语句中列出才能被转置,未被转置的变量不进入新的数据集,除非它们已经被列入copy或by语句。
by语句使输入数据集分组转置,分组变量被包括在输出数据集中。
第三篇:SAS数据输入总结
SAS学习总结
一、SAS的数据录入
(1)直接输入
data first;
input name $ salary;
datalines;a 12b 34c 56d 78
;
run;
注意:datalines的位置以及数据录入后的分号
(2)借助infile可读入文本格式为dat、txt、csv
A.最简单的形式
data first;
infile 'c:userslichaodesktopsasdatatoadjump.dat';
input Toadname $ Jump1 Jump2 Jump3 Jump4;
run;
proc print data=work.first;
run;
B.有空格的情况,需要数一下
data second;
infile 'c:userslichaodesktopsasdataonionring.dat';
input Name $ 1-19 Jump1 22-24 Jump2 25-28 Jump3 30-31 Jump4 33-34 Jump5 37 Jump6 40;
run;
proc print data=work.second;
run;
C.格式重复的情况
data third;
infile 'c:userslichaodesktopsasdataexercise.dat';
input Num1 Num2 Num3 @@;
run;
proc print data=work.third;
run;
注意:@@的用法
D.其他的格式
Ⅰ.输出特定的行
data icecream;
infile 'c:userslichaodesktopsasdataicecreamsales2.dat' firstobs=3 obs=5;
input Flavor $ 1-9 Location Boxessold;
run;
proc print data=icecream;
run;
注意:firstobs和obs的位置不要改变,而且两者可以单独使用
Ⅱ.有缺失值
data class;
infile 'c:userslichaodesktopsasdataallscores.dat' missover;
run;
proc print data=class;
run;
注意:在有缺失值的情况下,如果输出有错误的话就用missover
Ⅲ.非正常的输入:
data third;
infile 'c:userslichaodesktopsasdatapumpkin.dat';
input Name $16.num 3.type $2.date $11.(num1 num2 num3 num4 num5)(4.1);run;
proc print data=third;
run;
注意:16.和3.、4.1等的表示方法,都是表示宽度,相比较数列数的方法更有效;输入格式相同的话可以加括号把格式写在后面的括号里。
Ⅳ.日期的输入:
按照数值处理,根据情况,使用MMDDYYw.或者 DDMMYYw.(3)import 录入其他格式的文件(可导入的格式非常多)
proc import datafile='c:userslichaodesktopsasdatasecond.xls' dbms=xls out=mydata replace;sheet=“sheet1$”;
range=“a1:b3”;
run;
proc print data=mydata;
run;
注意:sheet表示单元表的名字,range表示导入的数据范围
input name $ test1 test2 test3 test4 test5;
第四篇:SAS复习资料
SAS复习资料 2013.6.20
说明:根据老师给的Html版整理,如有错误、遗漏敬请原谅,并及时指出,进行改正。谢谢!
1.研究因子:对试验指标有影响的,在试验中需要加以考察的条件。2.小机率原理:概率很小的事件,在一次试验中是不至于发生的。3.重复:每个参试的品种或处理占有两个或两个以上的小区称有重复。
4.局部控制:通过对小区的合理安排,把试验误差控制在一个局部的范围内。5.试验指标:试验中用来衡量试验效果的量。
6.复因子试验:包含两个或两个以上的因子的试验。7.集团(总体):根据研究目的确定的,凡符合指定条件的全部观察对象。8.偶然误差(机误):由于机会不等所造成的偏差。9.可量资料:能够以测量、称量的方法表示的资料。10.正交互作用(正连应):某些因子综合起来的效果大于这些因子单独作用的效果之和。1.进行随机区组的统计分析,需用何种方差分析?:双方面分类的方差分析 2.进行拉丁方的统计分析,需用何种方差分析?:三方面分类的方差分析 3.进行双方面分类的方差分析,总平方和分解为多少部份?:三部分 4.进行三方面分类的方差分析,总平方和分解为多少部份?:四部分
5.两因素(含交互作用)的方差分析,处理组合平方和应分解为多少部份?:四部分 6.三因素(含一级交互作用)的方差分析,处理组合平方和应分解为多少部份?:七部分 7.在几种常用的试验设计方法中,哪种精确度较高?:拉丁方 8.随机区组设计的误差自由度等于多少?:(m1)9.拉丁方设计的误差自由度等于多少?:(n2)10.只有重复而末实行局部控制的试验,应采用何种方差分析?:单方面分类的方差分析 1.样本标准差的功用?:反映样本的变异程度
2.样本平均数标准差(标准误)的功用?:反映在同一个总体进行抽样,所得的样本平均数间的差异,即抽样误差。
3.变异系数的功用?:用作两类事物的变异程度作比较
4.样本平均数的功用?:指示资料的中心位置,反映资料的一般质量水平,作为代表值同其它资料比较
5.协方差分析的功用?:用处理前的数据(基数)矫正处理后的数据,提高分析的精确度。6.样本均数差异显著性测验的功用?:在一定的概率保证下,判断事物间有否本质差异 7.总体均数区间估计的功用?:通过抽样,由样本的情况估计未知总体平均数的数值范围 8.在试验设计中,局部控制的作用?:减少试验误差
9.在试验设计中,重复的作用?:减少试验误差,估计试验误差,扩大试验的代表性 10.在试验设计中,随机排列的功用?:正确估计试验误差 1.何谓试验指标?:在试验中用来衡量试验效果的一个量
2.什么叫保护行?:防止试验材料受外来因素和周边环境影响作物行
3.某个复因子试验的处理组合数应如何计算?:等于有关因子的水平数乘积 4.在常用的试验设计中,哪种设计方法的精确度最高?:拉丁方 5.在常用的试验设计中,哪种设计方法的精确度最低?:间比法 6.试验设计三大原则是什么?:重复,局部控制,随机排列
7.作改良对比法设计时,参试的品种或处理数一般不大于多少?:不受限制 8.作随机区组设计时,参试的品种或处理数一般不大于多少?:不大于18 9.作配对法设计时,参试的品种或处理数一般不大于多少?:两个
10.作拉丁方设计时,参试的品种或处理数一般不大于多少?:不大于8 1.某个因子的自由度等于多少?:等于该因子的水平数减1 2.某两因子试验中,其交互作用的自由度等于多少?:等于有关因子的自由度的乘积
3.一可量资料样本均数与总体均数差异显箸性进行t检验时,其自由度为多少?:等于样本含量数-1 4.正交表的总自由度等于多少?:等于参试的处理组合数-1 5.作回归关系显著性测验时,回归项的自由度等于多少?:等于自变量的个数 6.作简单相关系数显著性测验时,DF等于多少?:等于N-2 7.2*2联卡平方测验时,DF等于多少?:1 8.两个配对法设计的可量资料样本均数差异显箸性进行t检验,其自由度为多少?:试验资料的配对数-1 9.2*J联卡平方测验时,其自由度为多少?:J-1 10.作拉丁方设计时,参试的品种或处理数一般不大于多少?:2 1.SS:平方和 2.N(0,1):标准正态分布 3.μ:总体平均数
4.CLM:平均数的置信区间 5.∑X :总和
6.VIF:方差膨胀因子 7.MSE:误差均方 8.DF :自由度 9.CV:变异系数 10.V:方差
1.欲进行聚类统计分析,需调用SAS系统的何种过程?:Proc cluster 2.欲进行回归统计分析,需调用SAS系统的何种过程?:Proc reg 3.欲进行方差统计分析,需调用SAS系统的何种过程?:Proc anova 4.欲进行因子统计分析,需调用SAS系统的何种过程?:Proc factor 5.欲进行典型相关统计分析,需调用SAS系统的何种过程?:Proc cancorr 6.欲进行基本统计量统计分析,需调用SAS系统的何种过程?:Proc means 7.欲进行主成分分析,需调用SAS系统的何种过程?:Proc princomp 8.欲进行成组法T测验,需调用SAS系统的何种过程?:Proc ttest 9.欲进行正态分布检验,需调用SAS系统的何种过程?:Procunivariate 10.欲进行作相关点式图,需调用SAS系统的何种过程?:Proc plot 1.单因子随机区组的方差分析模型(MODEL)是:Y=BLOCK T 2.单因子随机区组协方差分析的模型是(MODEL):Y=BLOCK T X 3.三元线性回归分析的模型是(MODEL):Y=X1 X2 X3 4.单方面分类的方差分析模型(MODEL)是:Y=T
5.两个因子变量的反应面分析的模型(MODEL)是:Y=X1 X2
6.单因子随机区组的多元方差分析的模型(MODEL)是:X1 X2 X3 =BLOCK T 7.3*4 复因子试验的方差分析模型(MODEL)是:Y=BLOCK A B A*B 8.拉丁方设计的方差分析模型(MODEL)是:Y=A B T 9.3*2*3复因子试验的方差分析模型(MODEL)是:Y=BLOCK A B C A*B A*C B*C A*B*C 10.正交随机区组(不考查交互作用)的统计分析模型(MODEL)是:Y=BLOCK A B C D 1.协方差分析的功用?:用处理前的数据(基数)矫正处理后的数据,提高分析的精确度 2.主成分分析的功用?:将个数众多、相互有关联的变量,转化为少数几个相互独立的变量 3.聚类分析的功用?:把样本或变量进行分类分
4.典型相关系数的功用?:反映两组不同性质的变量之间的关系密切程度 5.样本平均数的功用?:反映资料的一般质量水平,指示资料的中心位置 6.样本平均数标准差(标准误)的功用?:估计抽样误差
7.在回归分析中,残差的作用:反映实测值与预测值之间的偏差程度 8.在试验设计中,局部控制的作用?:减少试验误差 9.在试验设计中,重复的作用?:估计试验误差
10.变异系数的功用:用于两组资料的变异程度作比较
1.多重比较的方法有很多种,课本介绍了其中的三种: 第一种、最小显著差数法(Least Significant difference---LSD法或t测验法)第二种、Q测验法(最高显著差数法═Tukey测验法)
第三种、新复极差法(Shortest Significant Range---SSR法或Duncan法)哪种测验法的精确度较高?TUKEY法
2.不服从正态分布的数据不能直接作方差分析,必须进行数据转换,数据转换常用的方法有:(1)、平方根代换(2)、对数代换(3)、反正弦代换
问如果数据为二项分布的百分率,即可数百分数,且大于70%或小于30%,应采用何种代换?反正弦代换
3.计算步骤为:
第一步、将数据进行标准化; 第二步,求相关矩阵;
第三步,求相关矩阵的特征根、特征向量、各特征根的方差贡献率和累计方差贡献。第四步,根据特征根的累计方差贡献率保留前几个公共因子。
第五步,用前几个特征根的平方根乘相应的特征向量,构成因子载荷阵; 第六步,求相关系数矩阵的逆阵;
第七步,用因子载荷阵与相关矩阵的逆阵相乘,得回归系数阵; 第八步,用回归系数与标准化数据相乘得因子得分值。问这是何种统计分析方法?因子分析
4.计算步骤为:
第一步,将数据进行中心化; 第二步,求方差协方差矩阵; 第三步,求方差协方差矩阵的特征根、特征向量、各特征根的方差贡献率和累计方差贡献率。第四步,根据特征根的累计方差贡献率保留前几个主成分。
第五步,用中心化数据与前三个特征向量相乘,求得前三个主成分得分。
第六步,如果觉得有必要,用前三个特征根的平方根(即前几个主成分的标准差,)除前几个主成分得分值,得标准化主成分得分。第七步,如果有必要的话,利用这些标准化主成分得分作进一步的分析。问这是何种统计分析方法?主成分分析
5.计算步骤为:
第一步,计算X、Y、X*Y项的各种平方和(X为基数,Y为处理后的实测值;
第二步,进行X与Y项的回归关系显著性测验,若相关不显著,则进行一般的方差分析; 第三步,若相关显著,则扣除回归关系后,再进行方差分析; 第四步,用回归系数矫正处理后的数据测验,再进行多重比较。问这是何种统计分析方法?协方差分析
6.计算步骤为:
第一步,计算出k个类别的方差协方差矩阵的逆阵。
第二步,计算出各个训练样本到这k个类别的马氏距离,比较这k个距离,把训练样本归到距离最短的类中。
第三步,计算在第二步中判别错误的样本数占总样本数的百分率。第四步,如果还有新的待判样本,计算各个新样本到这k个类别的马氏距离,比较k个距离,把各个新样本归到距离最短的类中,再计算在待判样本中判别错误的样本数占待判样本总数的百分率。
问这是何种统计分析方法?判别分析
7.计算步骤为:
第一步,计算出Y的矫正数及各种平方和(Y为处理后的实测值)。第二步,列方差分析表并进行F测验。第三步,若F测验显著则进行多重比较。第四步,写出统计结论。
问这是何种统计分析方法?一元方差分析
8.计算步骤为:
第一步,按一定的原则选择k个凝聚点;
第二步,将所有事例点归到最靠近它的凝聚点所代表的类中,得到k个初始分类;
第三步,按最近距离的原则对初始分类进行修改;反复进行,直至分类合理为止。问这是何种统计分析方法?动态聚类
9.计算步骤为:
第一步,将原始数据进行中心化,按研究目的分为两组,记变量数(m1)较少的那组为X1,记变量数(m2)较多的那组为X2。
第二步,求X1和X2的方差协方差矩阵S11、S12和S22以及S12的转置阵S21,并利用它们构成非对称的方阵。
第三步,求非对称的方阵的特征根和对应的特征向量。
第四步,将这些特征向量除以非对称的方阵的特征根的平方根转换为第一组的典型系数。第五步,利用两个典型系数的关系式求出另一组的典型系数。第六步,将中心化数据和典型系数相乘得典型相关系数。问这是何种统计分析方法?典型相关分析 10.用SAS系统作数据分析,首要的问题是如何排列数据,你熟悉SAS系统对各种统计分析方法的数据排列的要求吗?问单因子试验采用随机区组设计,有四个试验指标时,数据应排多少列?。6列
:平方和
乘积和
合并样本百分数
样本标准差
样本平均数标准差
两样本百分数之差的总体标准差
两样本平均数之差的样本标准差
总体标准差
样本变异系数
样本差数平均数标准差
可量资料大样本均数与总体均数差异显箸性测验
可量资料两大样本均数差异显箸性测验 可数资料样本百分数与总体百分数差异显箸性测验
可数资料两大样本百分数差异显箸性测验
可量资料小样本均数与总体均数差异显箸性测验
可量资料两小样本均数差异显箸性测验(配对法)
可量资料两小样本均数差异显箸性测验(成组法)
由可量资料大样本对总体均数进行估计
由可量资料小样本对总体均数进行估计
由可数资料大样本百分数对总体百分数进行估计
第五篇:SAS编程技术课后习题总结
第一章
1.缺省情况下,快捷键F1, F3, F4, F5, F6, F7, F8, F9和Ctrl+E的作用是什么?
F1帮助,F3 end,F4 recall调回提交的代码,F5 激活编辑器窗口,F6激活日志窗口,F7键激活输出窗口,F8 提交,F9键查看所有功能键功能,Ctrl+E键清除窗口内容。
2.缺省情况下SAS系统的五个功能窗口及各自的作用是什么?怎样定义激活这些窗口的快捷键?
1)资源管理器窗口。作用:访问数据的中心位置。2)结果窗口。作用:对程序的输出结果进行浏览和管理。3)增强型编辑器窗口。作用:比普通编辑窗口增加了一些功能,如定义缩写,显示行号,对程序段实现展开和收缩等。4)日志窗口。作用:查看程序运行信息。5)输出窗口。查看SAS程序的输出结果。3.怎样增加和删除SAS工具?
使用菜单栏中的工具=>定制=>“定制”标签实现工具的增加和删除。4.SAS日志窗口的信息构成。
提交的程序语句;系统消息和错误;程序运行速度和时间。
5.在显示管理系统下,切换窗口和完成各种特定的功能等,有四种发布命令的方式:即,在命令框直接键入命令;使用下拉菜单;使用工具栏;按功能键。试举例说明这些用法。
如提交运行的命令。程序写完后,按F3键或F8键提交程序,或单击工具条中的提交按纽,或在命令框中输入submit命令,或使用菜单栏中的运行下的提交,这样所提交的程序就会被运行。6.用菜单方式新建一个SAS逻辑库。
在菜单栏选择工具—》新建逻辑库出现如图所示界面。
在名称中输入新的逻辑库名称。在引擎中根据数据来源选择不同的引擎,如果只是想建立本机地址上的一个普通的SAS数据集数据库,可以选择默认。然后选中“启动时启用”复选框,在逻辑库信息中,单击路径后的“浏览”按钮,选择窗口可以不填,单击确定产生一个新的逻辑库。
7.说明下面SAS命令的用途并举例: keys,dlglib,libname,dir,var,options,submit,recall.Keys激活功能键的设定窗口。libname 建立SAS逻辑库。Submit提交。Options设定一个或多个系统选项,任何系统选项都有一个默认设置。8.用菜单方式导入(Import)和导出SAS数据集(Export)。
文件->导入数据
出现上图对话框,选择要导入数据类型,然后NEXT。
浏览要导入数据的地址。点击OK。
出现上图对话框,然后点击NEXT。
选择数据库存放的地址并命名。
第二次作业
1.构成SAS程序的语句分别分为哪两大类?什么是SAS语句?举例说明SAS语句的信息构成。
数据步、过程步
SAS语句就是一系列关键词、SAS名称、算符以及特殊字符的组合。2.简述SAS名的种类及命名规则。什么是SAS关键词?
SAS名的类型:1逻辑库名; 2数据集名;3变量名;4格式名;5过程名;6数组名;7语句标号名;8特殊文件名;9其它名。
SAS名称必须以字母或下划线开头;SAS名称可以包括字母、数字和下划线; SAS名称依据其使用的场合有一定长度限制。
3.SAS变量的类型和属性。举例说明SAS自动变量。数值变量
数值变量是SAS系统以浮点(floating-point)方式存储的数据变量,数 值变量包括日期和时间。数值变量的值只能是数值。字符变量
字符变量可以由阿拉伯字母、数字0-9以及其它一些特殊字符组成。字符变量的值可以是字符、字母、特殊字符和数值。字符变量名后跟 一个美元号($)表示该变量是字符型而不是数值型。
2)变量属性
SAS变量的属性包括:长度、输入输出格式和标签。未设定属性的变量在它们第一次出现时由系统给出。
4.给一个简单的SAS程序的例子,适当应用SAS的注释语句。data a;
/*data为关键词,a为SAS名*/ x=12345.1234;informat x 12.4;/*输入语句,保留12字节和4位小数*/ format x 8.2;
/*输出语句,保留8字节和2位小数*/ put x=;run;
5.SAS数据集中变量链表时,X1~Xn表示什么?特殊SAS变量列表_numerie_,_character_和_all_的含义。
X1~Xn 从X1到Xn的所有变量 _numerie_ 所有数值变量 _character_ 所有字符变量 _all_ 所有变量
6.怎样提交SAS程序?简述程序执行过程中,LOG窗口显示的信息结构。
8.简述SAS表达式定义及其结构构成元素。
表达式由一系列操作符和操作对象构成,产生一个目标值。使用表达式可以对变量作变换和赋值,创建新变量,计算新数值以及控制条件语句的运行等。包括操作对象和操作符
9.构成SAS表达式的操作对象和操作符有哪些? 操作对象有:变量;常数
操作符包括:算术算符;比较算符;逻辑算符;SAS函数;括号
11.举例说明数值常常数、字符常数和日期时间常数的表达方法。引用数值格式 例:
标准格式:1,01,+1,-1,1.1;科学计数法:1.1e11,1.2e-12;十六进制格式:1cx,12x,9x
字符常数通常由单引号括起来的1~32767个字符组成。如果字符常数内含有引号,引用时,要么它的引号用两个连续的单引号,要么用一个双引号。例:name=”TOM’S”
引用日期时间常数,格式值带引号,后面跟一个D(日期)、T(时间)、或DT(日期时间)例:’ljan2000’d 16.简述数据步的功能。
1)创建SAS数据集(SAS数据文件或SAS数据视图); 2)读取外部数据文件创建SAS数据集;
3)通过对现有SAS数据集取子集、合并、修改和更新创建新的SAS数据集; 4)分析、操作或展示数据; 5)创建新变量;
6)产生报告、或将文件存储到硬盘或磁带上; 7)提取信息; 8)文件管理。
第三次作业
data A;infile cards;input Fee @@;cards;35 78 99 36 79 21 23 90 87 90 33 55 66 12 98 1100;run;
第四次作业
1、data a;input x;y=y*x;retain y 1;cards;1 2 3 4 8 16;proc print;run;
2、data b;input stkcd $ rdate yymmdd10.lstknm $ var1 var2 var3;cards;;run;data c;format stkcd lstknm rdate var3 var2 var1;set b;run;
3、data a;input date price;cards;12 23 23 52 11 21;data b;input date price;cards;12 55 55 21 68 9;proc sort data=a;/*排序*/ by date;run;proc sort data=b;by date;run;data c;set a b;by date;proc print noobs;run;
4、data a;input logdate $10.;cards;2011-12-2 2012-8-6 2012-8-10;run;data b;set a(rename=(logdate=date));date=input(date,yymmdd10.);label date='日期';run;
5、自动变量是由数据步语句自动创建的,这些自动变量不输出到数据集中,在重复过程中被保留。
6、创建组标识变量GROUP,将数据集A中的观测等分为10组,观测值不能整除10时,前余数组各多加一个观测值
data a;set resdat.treat nobs=nobs;x=(nobs-mod(nobs,10))/10;call symput('nobs',nobs);call symput('groupn',x);Call symput('mod',mod(nobs,10));Drop x;run;%put &nobs &groupn;data b;do i=1 to &mod do _n_=1 to &groupn+1;group=i;output;end;end;do i=&mod+1 to 10;do _n_=1 to &groupn;group=i;output;end;end;Drop i;run;data c;merge a b;proc sort data=c;by group;run;
7、现有一个数据流:a 2 b 3 c d 4 6,按下面要求创建SAS数据集。用语句input id $ no;变 量id取值上面数据流里的a,b,c,d,变量no取值2,3,4,6。但是这个数据流存在问题:如有的id没有no,有的no没有id。创建SAS数据集,删除只有id没有no或者只有no没有id的观测,即把上面的c和6去掉,最后得到三个观测,a 2, b 3与d 4。
data a;input t$@@;cards;a 2 b 3 c d 4 6;run;data b;set a;id=lag(t);no=t;if 'a'<=id<='z' and '0'<=no<='9';drop t;run;
8、现有一个数据流:a23 223 bc4 36 3c5 11d 400 620,按下面要求创建SAS数据集。用语句input id $ no;变量id取值上面数据流里的a23, bc4, 11d,变量no取值233,36,400。但是这个数据流存在问题:如有的id没有no,有的no没有id。创建SAS数据集,删除只有id没有no或者只有no没有id的观测,即把上面的3c5和620去掉,最后得到三个观测:
a23 223 bc4 36 11d 400
data a(keep=id no);input x $ @@;id=lag(x);no=input(x,8.);y=lag(no);if y='.' and id^=' ' and no^='.';cards;a23 223 bc4 36 3c5 11d 400 620;run;
第五次作业
1.创建一包含10000个变量(X1-X10000),100个观测值的SAS数据集。分别用DATA 步,DATA步数组语句和IML过程实现。data test1a;informat x1-x10000 9.2;do i=1 to 100;output;drop i;end;run;2.多种方法创建包含变量X的10000个观测值的SAS数据集。
3.数据集A中日期变量DATE包含有缺失值,创建包含日期变量DATE的数据集B,并填
充开始到结束日之间的所有日期值。
proc iml;x= {'date' price};t= {1111 2,2341 2,2132 3,1234 5,12345 6,3456 6,6753 4,2345 7,2134 9};print t;t[1,1]=.;t[2,1]=.;t[5,1]=.;t[9,1]=.;create a from t[colname=x];/ append from t;show datasets;show contents;close a;run;quit;data a;set a;format date yymmdd8.2;run;data a1;set a n=_n_;format date yymmdd8.2;retain temp;if date^=.then temp=date;else date=temp;run;data a2;n=_n_;set a1;run;proc sort data=a2;by descending n;set a2 drop n temp;run;data a4 set a3;retain temp;if date^=.then temp=date;else date=temp;run;data a4;n=_n_;set a4;run;proc sort data=a4 out=b(drop=n temp);by descending n;run;
4.利用随机数函数RANUNI对某数据集设计返回抽样方案。data sample(drop =samplesize n);samplesize=5;do n=1 to samplesize;readit=ceil(ranuni(0)*totobs);put readit=;set bb.class point=readit nobs=totobs;output;end;stop;run;
5.利用随机数函数RANUNI对某数据集设计不返回抽样方案。
data a;set bb.class;keep name;run;data b;set a nobs=nobs;ran=ceil(nobs*ranuni(1));put ran=;run;proc sort data=b;by ran;data c;set b;if _n_<=15;run;
6.给下段程序的主要语句加注释。STOP语句能否删除?为什么?
不能删除。
强制结束数据步,因为set语句在数据步程序中会反复执行数据步的程序直到遇到文件结束(最后一跳观测)的标志,这里使用了指针选项可能碰不到这种标志,所以要用stop,否则就有可能无休止地执行下去。
7.SAS系统显示表达式、函数、数据集、数组或矩阵的具体值时,常需要哪些语句和过程? put;proc print print show list;
第六次作业
2.SAS函数的自变量有几类?
自变量类型:变量名、常数、函数、表达式。3.举例说明自变量的表示方法和缩写规则。当函数有多个自变量时,必须用逗号分隔开。
自变量名缩写方法:函数名(OF变量名1-变量名n);函数名(OF变量名1…变量名n)。7.SAS系统是怎样存贮日期时间的?SAS日期时间存贮标准是什么?
SAS日期和时间存储标准是以1960年1月1号0时0分0秒为起点,然后以相应的间隔记时。如1960年1月1日9时0分,按日记的数值就是0,按小时记的数值就是9。1960年1月2日0时0分,按日记的数值就是1,按小时记的数值就是24。
9.分别说明日期时间函数datdif, yrdif, date(), datetime, mdy, dhms有哪些实际用途。
DATADIF(sdate,edate,basis)返回两个日期之间的天数。YRDIF(sdate,edate,basis)返回两个日期之间的年数。DATA()返回当前日期的SAS日期值。DATETIME()返回当前日期和时间。
MDY(month,day,year)返回由年、月和日定义的SAS日期值。
DHMS(date,hour,minute,second)返回由日期、小时、分钟和秒构成的SAS日期时间值。