SAS课件讲义.docx

上传人:b****1 文档编号:2800545 上传时间:2023-05-04 格式:DOCX 页数:46 大小:64.73KB
下载 相关 举报
SAS课件讲义.docx_第1页
第1页 / 共46页
SAS课件讲义.docx_第2页
第2页 / 共46页
SAS课件讲义.docx_第3页
第3页 / 共46页
SAS课件讲义.docx_第4页
第4页 / 共46页
SAS课件讲义.docx_第5页
第5页 / 共46页
SAS课件讲义.docx_第6页
第6页 / 共46页
SAS课件讲义.docx_第7页
第7页 / 共46页
SAS课件讲义.docx_第8页
第8页 / 共46页
SAS课件讲义.docx_第9页
第9页 / 共46页
SAS课件讲义.docx_第10页
第10页 / 共46页
SAS课件讲义.docx_第11页
第11页 / 共46页
SAS课件讲义.docx_第12页
第12页 / 共46页
SAS课件讲义.docx_第13页
第13页 / 共46页
SAS课件讲义.docx_第14页
第14页 / 共46页
SAS课件讲义.docx_第15页
第15页 / 共46页
SAS课件讲义.docx_第16页
第16页 / 共46页
SAS课件讲义.docx_第17页
第17页 / 共46页
SAS课件讲义.docx_第18页
第18页 / 共46页
SAS课件讲义.docx_第19页
第19页 / 共46页
SAS课件讲义.docx_第20页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SAS课件讲义.docx

《SAS课件讲义.docx》由会员分享,可在线阅读,更多相关《SAS课件讲义.docx(46页珍藏版)》请在冰点文库上搜索。

SAS课件讲义.docx

SAS课件讲义

★第一章:

SAS系统简介

SAS文件及命名

1、SAS数据集文件(后缀为sas7bdat)

2、SAS程序文件(后缀为sas)

3、SAS日志文件(后缀为log)

4、SAS输出文件(后缀为list)

★第二章:

SAS数据集的分类

临时数据集和永久数据集

(一)临时数据集存放在work数据库中

(二)永久数据集存放在永久数据库中,除了work数据库之外,其他的数据库都是永久数据库。

1、SAS文件的2级命名方式:

目录.文件名

2、使用Libname语句创建永久数据集,

libname自建目录名‘目录地址’;

Libname例

创建与读取永久数据库

1、创建永久数据集永久数据集的扩展名是sas7bdat。

libname例:

libnamesasroom"d:

\sasdata";

datasasroom.data1;

inputy$x1x2x3@@;

cards;

run;

procprint;

run;

2、读取永久数据集read例

libnamesasroom"d:

\sasdata";

datasasroom.data1;

inputy$x1x2x3@@;

cards;

run;

建立SAS数据集的5种方法

1、用data步输入数据建立。

newdata例

datanewdata;

inputgroup$x1x2x3;

cards;

2、利用infile语句从外部调入数据文件建立SAS数据集,注意:

infile语句必须放在input语句的前面。

(Infile例)

(Infile例)

datanewdata2;

infile"d:

\sasdata1.txt";

inputgroup$x1x2x3;

run;

procprintdata=newdata2;

title"数据";

run;

(Set1例)

datanewdata;

setsasuser.air;

run;

procprintdata=newdata;

run;

3、利用“导入数据”功能建立。

(Excel例)

4、利用EFI(externalfileinterface)功能导入(classifydata例)。

5、data步利用set语句建立。

(Set1例)

查看SAS数据集的内容

1、使用contents过程查看数据的相关信息。

Contents例

proccontentsdata=数据集名position;

2、用print过程来显示数据。

Contents例

proccontentsdata=sasuser.airposition;

run;

SAS数据集的加工

一、两个SAS数据集的合并

1、两个SAS数据集的串接(set语句);set2例

2、两个SAS数据集的并接(merge语句).

二、变量值的排序(sort语句)sort例

三、对变量的选择(drop语句和keep语句)。

Drop1,2例、keep例

set2例

procprintdata=sjk.newdata;

run;

sort例

procsortdata=sjk.dqgzout=sjk.outdata;

bysum;

procprintdata=sjk.outdata;

run;

Drop1,2例

1.datadqgz_drop;

setsjk.dqgz;

dropx1x2;

run;

procprintdata=dqgz_drop;

run;

2.procprintdata=sjk.dqgz(drop=x1x2);

run;

keep例

datadqgz_keep;

setsjk.dqgz;

keepdx3x4x5;

run;

procprint;

run;

四、对观测的选择。

例子:

obs1、obs2、obs_if、obs_if_then、obs_where。

五、产生新变量及其观测值,利用赋值语句:

variable=表达式;例子:

new_variable

obs1

dataclass_obs;

setsasuser.class(firstobs=3obs=10);

run;

procprint;

run;

obs2

dataa2;

setsasuser.fitness(keep=ageweightruntimefirstobs=2obs=15);

procprintdata=a2;

run;

obs_if

dataa3;

setsasuser.fitness;

ifgroup='1';

procprintdata=a3;

run;

obs_if_then

dataa4;

setsasuser.fitness;

ifgroup='1'thendelete;

procprintdata=a4;

run;

obs_where

dataa5;

setsasuser.fitness;

where=(group='2');

procprintdata=a5;

run;

new_variable

dataa6;

setsasuser.fitness;

x=log(weight);

y=runtime*10;

procprintdata=a6;run;

SAS运算符

数学运算符:

+ - */**(幂运算)

比较运算符:

=(EQ)^=(NE)>(GT)<(LT)>=(GE)<=(LE)in

逻辑运算符:

&(AND)|(OR) ^(Not)

其它:

><(最小值)<>(最大值)||(连接)

运算次序一

第一级:

**(+ -)前缀 ^ ><<>第二级:

*/

第三级:

+ -第四级:

||第五级:

其余比较算符

第六级:

&第七级:

| 

注意:

括弧可改变运算顺序,括弧里的先计算

运算次序二

对于相同优先级的算符,左边的运算先做。

但有两个例外:

1.对最高优先级,右边的运算先做

2.当两个比较算符围着一个量时,这个表达式看成是有一个and出现一样被计算。

如:

12<age<20,等价于:

12<age&age<20

SAS函数

SAS函数返回由它的参数计算得到的结果,它的一般形式为:

SAS函数名(参数1,参数2,…)

参数之间由逗号隔开。

SAS函数的参数可以是参数、变量、表达式或者其它函数。

SAS函数分为13种类型,共147个函数。

下面我们介绍一些常用的SAS函数。

1.数学函数:

abs(x)x的绝对值;sign(x)符号函数

max(x,y,...)x,y,…中的最大值min(x,y,...)x,y,…中的最小值

mod(x,y)x/y的余项;sqrt(x)x的平方根

exp(x)e的x次幂;log(x)自然对数

log10(x)以10为底的对数log2(x)以2为底的对数

sin(x)cos(x)tan(x)三角函数arsin(x)artan(x)反三角函数

2.样本统计函数

sum(x,y,...)计算参数和mean(x,y,...)计算算术平均值

var(x,y,...)计算方差std(x,y,...)计算标准差

3.概率分布函数

Probbnlm(p,n,r)参数为p,n的二项分布函数,P{X<=r}的值

Probnorm(x)标准正态分布函数,P{X<=x}

Probchi(x,df)自由度为df的卡方分布函数,P{X<=x}的值

Probf(x,df1,df2)F分布probt(x,df)t分布

4.随机数函数

Uniform(seed)产生[0,1]区间上均匀分布的随机数

Rannor(seed)产生N(0,1)的随机数

Ranbin(seed,n,p)产生二项分布的随机数

libnamesas'd:

\sas';

dataa3;

setsas.dqnlmy3(keep=dcx1);

ifc='1'theny=2*x1;

elsey=3*x1;

procprintdata=a3;

run;

5.时间函数

DATA步中常用语句

*IF语句(条件转移语句)

1、简单if语句一般格式:

if条件表达式;

2、if…then语句if条件表达式then执行语句;

3、if…then…else语句

if条件表达式then执行语句1;

else执行语句2;(if_then_else例)

*DO语句

1、简单do语句(常与IF…THEN一起使用)

do;

SAS语句;…

end;(do1、if_then_do例)

2、循环DO语句(do2例)

do指标变量=初值to终值(by增量);

SAS语句;

end;

do1

datads;

inputx;

fileprint;

ifx>5thendo;

y=x*10;

putx=y=;

end;

cards;

if_then_do例

dataa5;

setsas.dqnlmy2(keep=dcx1x2);

ifx1<1000andc='2'thendo;

y=2*x1;

z=3*x2;

end;

procprintdata=a5;

run;

do2例

dataxa;

inputx@@;

doi=1to4;/*把i改成其他字符同样可行*/

y=4*x;

output;/*如果略去output,则只输出最后一次循环的结果*/

end;

cards;

循环do语句可采用条件控制形式。

一般形式:

dountil表达式;

SAS语句;

end;

(表示循环语句执行到括号中的表达式满足为止,do_until例)

或者:

dowhile表达式;

SAS语句;end;

(表示循环语句执行到括号内的表达式不满足为止,do_while例)

循环语句还可以采用嵌套形式,即在循环语句do…end内部,可嵌入另一个do…end循环语句,称为嵌套循环。

(do_do例)

do_until例

datarandom;

i=0;

dountil(i=30);

x=2+4*rannor(1234);

i=i+1;

output;end;

do_while例

datawhile;

n=0;

dowhile(n<4);

fileprint;

putn=;

n+1;end;run;

do_do例

datakscj2;

doa=1to2;

dob=1to3;

doi=1to4;

inputx@@;

output;end;end;end;cards;

*GOTO语句

GOTO语句告诉SAS系统立即转向执行GOTO语句中指出的语句,并从那一点开始继续执行.(go_to例,do3例)

*LABEL语句

LABEL语句的作用是对变量进行说明。

格式:

label变量名1=‘标记1’变量名2=‘标记2’…

(label例)

go_to例

datainfo;

inputxy;

if1<=x<=5thengotook;

x=3;

count+1;*累加语句

ok:

sumx+x;/*累加语句*/

cards;

do3例

datainfo;

inputxy;

ifx<1orx>5thendo;

x=3;

count+1;*累加语句

end;

sumx+x;

cards;

label例

datastudent;

inputname$sex$chinengmathiq;

labelchin='中文'

eng='英语'

math='数学';

cards;

*LENGTH语句

变量长度的缺省值是8,但有时长度超过了8个字符,这时可用length语句定义变量的长度。

(length例)

*Delete语句

告诉SAS系统停止处理当前观测值,且不写入正在创建的数据集中。

Delete语句通常用作IF语句中的THEN字句或作为有条件的执行DO语句的一部分。

(delete1例)

length例

dataaa;

lengthname$14;

inputname$sex$hw;

cards;

zangzhihuif1.7052

zhaochangweim1.7355

;

procprint;

run;

delete1例

datastu;

inputidenglishtest1test2;

ifenglish<60thendelete;

total=sum(oftest1test2english);

cards;

★第三章:

制作列表报告

在PROCPRINT中使用其他语句可以产生一些比较复杂的报表,例如产生:

1、标题和脚注(TitlesandFootnotes)

例lonpar

libnamesas'D:

\SASDATA';

datasas.lonpar;

infile'd:

\data\lonpar.txt';

inputflight$1-3datedest$11-13mail14-17

freight18-21boarded22-25revenue26-32;

procprintdata=sas.lonpar;

run;

2、用户定制的表头(ColumnHeading)

3、格式化的数据值

4、总和(ColumnTotals)

5、小计(Columnsubtotals)

6、按组分页

§3-1产生列表报告

一、产生简单的列表

1、产生一个最简单的列表的程序形式:

Procprintdata=数据集名;

Run;

在缺省情况下,列表报告的最左面出现OBS列,给出了观测号;报告按原数据集的顺序显示。

(例lonpar)

二、Noobs选项

在print过程中,可以用noobs选项去掉obs列。

(例noobs)

三、VAR语句

使用var语句可以控制print过程中变量的出现与否以及出现的顺序,它的一般形式是:

VAR变量1变量2…;(例var)

Noobs

procprintdata=lonparnoobs;

run;

VAR

procprintdata=lonparnoobs;

vardateflightdestboardedrevenue;

run;

四、where语句:

选择数据集的观测

where条件表达式;

例1:

between…and:

选择变量值在某一范围的观测:

(例where)

where变量名between…and…;

where变量名notbetween…and…;

例2:

contains,选择变量中包含某一特殊字符串的观测:

where变量名contains‘字符串’;

五、Sum语句:

计算变量的总和(显示在该变量所在列的下方)。

一般格式:

(例sum)

sum变量名;

六、ID语句。

使用了id语句后,

(1)最左面的obs列被取消;

(2)Id/by语句所指定的变量被排列在报告的最左边;

(3)Id/by语句所指定的变量只在每个组的开始处出现一次。

(id_by)

七、Pageby语句:

使产生的报告按组分页。

pageby变量名;(例pageby)

Where

procprintdata=lonparnoobs;

vardateflightdestboardedrevenue;

whererevenuebetween155000and190000;

run;

Sum

procprintdata=lonparnoobs;

vardateflightdestboardedrevenue;

sumboardedrevenue;

run;

Pageby

procprintdata=sorted;

idflight;

vardatedestboardedrevenue;

sumboardedrevenue;

byflight;

pagebyflight;

run;

id_by

procsortdata=lonparout=sorted;

byflight;

procprintdata=sorted;

idflight;

vardatedestboardedrevenue;

sumboardedrevenue;

byflight;

run;

§3-2改进列表报告

一、标题(title)和脚注(footnote)

在SAS的所有报告中,都可以加入标题和脚注:

titlen‘标题文本’;

footnoten‘脚注文本’;(例title_footnote)

Title语句和Footnote语句具有如下特点:

1、n的范围从1到10,即最多有10个标题和脚注。

2、标题出现在每页的顶部,脚注出现在底部。

3、缺省的标题是‘TheSASSystem’,缺省的脚注不出现.

4、没有n的title和footnote等于title1和footnote1;

在使用了title和footnote语句后,所定义的标题和脚注将一直保持有效,直到另一个title和footnote语句被执行.

使用以下两个简单语句,可以取消所有的标题和脚注:

title1;footnote1;(例title1)

二、Label语句:

制作自定义的表头(给变量产生一个标签).

变量的标签具有以下属性:

1、最大长度为40的字符串

2、在print过程中必须使用label或split选项才能被显示

3、如果在过程步中被定义就只在该过程中有效;而如果在数据步中被定义,就随数据集一直有效(例label_2)

三、Split语句:

控制表头的分割

split=‘符号’;(例split)

title_footnote

procsortdata=lonparout=sorted1;

byflight;*按flight进行排序,输出为数据集sorted1;

procprintdata=sorted1;

idflight;

sumboardedrevenue;*对boarded,revenue求和;

byflight;

tile'国际航班';*一级标题;

title2'FlightstoLondonandParit';*二级标题;

footnote'preparedmarch12,1990';*一级脚注;

footnote2'bytheCorporateInformationCenter';*二级脚注;

run;

title1

procprintdata=sorted1;

idflight;

sumboardedrevenue;*对boarded,revenue求和;

byflight;

title1'StatisticsforFlightstoLondonandParit';

footnote1;

run;

label_2

procprintdata=sorted1label;*注意此处的label不能省略;

idflight;

vardatedestboardedrevenue;

sumboardedrevenue;*对boarded,revenue求和;

byflight;

title1'FlightstoLondonandParit';

footnote1;

labelflight='flightnumber'

date='DateofFlight'

dest='FlightofDestination'

boarded='NumberofPassengers'

revenue='totalRevenue';run;

Split

procprintdata=sorted1split='*';*注意此处的split;

idflight;

vardatedestboardedrevenue;

sumboardedrevenue;

byflight;

title1'FlightstoLondonandParit';*标题;

footnote1;

labelflight='flight*number'

date='Date*of*Flight'

dest='Flight*of*Destination'

boarded='Number*of*Passengers'

revenue='total*Revenue';run;

★第四章:

数据的描述性统计

§4-1常用统计量的含义

N—非缺失值观测的数目Nmiss—缺失值观测的数目

Min—最小值Max—最大值Range—极差(max-min)

Sum—观测值的加权和Mean—均值

Variance—方差StdDev—标准差SStdMean—标准误

CV—变异系数Mode—众数

USS—平方和CSS—校正平方和

Skewness—偏度系数Kurtosis—峰度系数

T—检验mean=0的T值Median—中位数

Q3—上四分位数Q1—下四分位数

§4-2变量的概括描述

一、PROCMEANS过程(means例、means_1例)

procmeansdata=数据集选项;

var变量名;

run;

其中的选项包括:

nmeanstdvarminmaxsumu

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2