




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现代统计分析与SAS入门学习目标1、了解SAS系统的功能特点;2、熟悉SAS系统的操作环境;3、掌握SAS系统的有关概念;4、学会使用DADAStep(数据步)建立数据集,能对现有数据集进行读入、修改、拼接及合并;5、学会使用PROCStep(过程步)的几个重要过程对数据集进行常规的统计分析和显示;6、学会自己查看系统帮助;7、能够利用SAS系统处理常见的研究数据。基本内容1、SAS概述;2、SAS显示管理系统;3、SAS编程基础:SAS语句;SAS表达式;SAS常量;SAS变量;SAS算符;SAS函数;4、DADAStep(数据步);5、PROCStep(过程步);6、常用统计分析模块。4、SAS系统的特点SAS系统是用于数据分析与决策支持的大型集成式模块化软件包,是一种组合软件系统。核心部分是BaseSAS软件,其它可选模块有:SAS/STAT软件、SAS/GRAPH软件、SAS/IML软件、SAS/OR软件、SAS/ETS软件等30多个。1、操作简便
SAS的宗旨是为所有需要进行数据处理、数据分析的非计算机专业人员提供一种易学易用、完整可靠的软件系统。用户把要解决的问题用SAS语言(近乎自然英语的非过程语言)表达出来,组成SAS程序,提交给SAS系统就可以解决所提出的问题。2、SAS系统将数据管理与统计分析溶为一体
SAS程序的结构由两个基本步骤任意组合而成。DATA步用于对数据的加工处理;PROC步用于分析数据和编写报告。SAS系统克服了通常软件或偏重于数据管理功能或偏重于统计分析的弊病,把数据管理与统计分析有机地结合在一起。3、适用性强、应用面广
SAS系统适用于任何经验的人员(初学者或有经验的用户);适用于任何类型的数据;适用于几乎是任何应用的需要;适用于任何计算机环境;扩展性能强。5、SAS软件的启动:用如下方法可以进入SAS系统的窗口运行环境:菜单方式:依次点击“开始”------->“程序”-------->“TheSASSystem”------>“TheSASSystemforWindowsv6.12”即可。
快捷方式:在Windows桌面系统下双击
SAS图标;6、SAS工作界面在命令窗口输入“keys”后情况命令行命令窗(条)7、SAS显示管理系统SAS显示管理窗口可分为两大类:基本窗口和其它窗口。基本窗口(三个):PROGRAMEDITOR窗口(程序编辑窗,缩写为PGM);LOG窗口(登录窗或日志窗);OUTPUT窗口(输出窗);PGM窗口:输入和编辑文本,包括SAS语句;提交SAS语句;拷贝一个外部文件到PGM窗口,或拷贝窗口内容到外部文件上;LOG窗口
LOG窗口包含SAS日志,它是当前SAS会话的记录。一个典型的记录显示:在当前会话中发布的SAS语句;注释、警告和出错信(红色---错误
兰色---正常
绿色---警告)OUTPUT窗口:这个窗口也称为LISTING窗口,它包含由大多数SAS过程产生的输出。在SAS会话期间相继产生的输出都附加到OUTPUT窗口内容中。其它窗口:除了三个基本窗口以外,显示管理包含很多其它窗口。各个窗口均可在任何一个窗口的命令行键入相应的命令来打开。下面按字母顺序列出包括三个基本窗口在内的主要显示管理窗口,并给出简单描述。常用显示管理窗口及调用命令8、显示管理命令SAS显示管理系统包括众多的命令让用户完成各种任务。根据发布命令的位置可将其分为命令行命令和行命令。显示管理命令按习惯是从命令行command===>输入相应的命令发布的,因此称这些命令为命令行命令;而一些文本编辑命令按习惯是从显示的行号上发布的,因此这些命令称为行命令(Windows环境下较少应用)。几个重要的命令行命令:1)窗口切换命令:
PGM|F5:切换到PGM窗口
LOG|F6:切换到LOG窗口
OUTPUT|F7:切换到OUTPUT窗口2)编辑命令:
CLEAR|Ctr+E:清除当前工作窗口的所有信息
RECALL|F4:将运行过的程序调回到PGM窗口
SUBMIT|F8:将PGM窗中的所有程序提交运行
HOME:将光标移到命令行保存文件:
方法1
(命令法):
FILE命令:将当前工作窗口的内容写到外部文件中。例如:FILE‘D:\My’回车后将信息写到D盘根目录下一个名为My的文件上。
方法2(菜单法):
“File”“SaveAs”,输入文件名“Myfile”点“保存”即可。打开文件:方法1
(命令法):INCLUDE|INC:将指定的外部文件调入PGM窗。例如:INC‘D:\My’回车后将D盘根目录下一个名为My的外部文件调入PGM窗。注1:该命令只能在PGM窗使用;如果PGM窗已有文本,则该命令将指定的外部文件调入窗口文本的后面。方法2(菜单法):“File”“Open…”,找到相应的文件,点“打开”即可。9、文件的保存与打开3、在D:盘根目录下建立一个文件夹,取名为:SASEX2004。将上题(题2)修改好的程序、输出结果及日志窗中的内容保存在前面建立的文件夹中。上机练习题(Cont.)第一章结束
SASwebsite:第二章SAS编程语言基础
同其它计算机语言一样,SAS语言也有它自己的语法:关键词和连结关键词与其它辅助信息的规则。用户使用SAS语言来定义数据和规定对数据怎样做统计分析的问题。由SAS语句组成的序列称为SAS程序。§1、SAS语句一.SAS语句的含义我们先来看一个实例:DATA
score;INPUT
nox1x2x3x4$;CARDS;;RUN;
687165
良好20010874 746168
良好20010875 737546
良好20010876 798079
优秀20010877 757168
良好20010884 858587
优秀20010885 787975
优秀20010886 807679
优秀20010887 858082
良好20010888 777175
良好20010889 677371
优秀20010890 758170
良好20011118 705475
及格20010893 706684
及格20010894 627365
及格20010909 827079
优秀PROC PRINTData=
score;VAR
nox1x2x3x4;RUN;PROCMEANSData=
score;VAR
x2x3;RUN;
dataex1;
inputname$agesex;
cards;xiaomin191lidong201nana182;
procprintdata=ex1;
run;
procprintdata=ex1;
Varnameagesex;
run;第一章练习题在这个例子中,我们看到:DATA,INPUT,CARDS,PROC,VAR,RUN是关键词;score是数据集名;no,x1,x2,x3,x4是变量名;MEANS是过程名;Data=是MEANS语句中的选项。现在,我们给出SAS语句的定义:SAS语句是由关键词、SAS名、特殊字符或运算符组成并以分号结尾的字符串。TheMEANSProcedureVariableNMeanStdDevMinimumMaximum------------------------------------------------------------------------------x21672.87500007.872949554.000000085.0000000x31673.00000009.791152546.000000087.0000000------------------------------------------------------------------------------二.几个概念1.SAS关键词位于句首的用以说明语句类型和功能的单词称为SAS语句的关键词。它是SAS语句的主要成份。如:PROC、DATA、VAR、RUN等。2.SAS名
SAS语句中出现的SAS名有很多种类,如变量名、SAS数据集名等。SAS命名规则:
1)由1至8个字符组成;
2)由三种字符构成:英文字母A-Z,a-z,下划线_,数字0-9;
3)每个名字的第一个字符不能为数字;
4)SAS系统保留了一些名字作为特殊的变量名,这些变量名的开头和结尾都用特殊字符下划线表示(如_N_、_ERROR_等)。例如:INPUT
xyz;其中:INPUT是关键词,它说明要把数据提供给哪些变量。后面跟的变量名x、y、z
都是参数,即要求用户提供的信息。…表示参数可以不止一个。[选项1|选项2|选项3]中的竖线“|”用来分隔各选择项,表示其中任选一个;方括号内的信息是可以选择的。例如:PROCMEANS
data=storemaxdec=3;其中:PROC是语句的关键词,它说明本语句是过程语句;MEANS是过程名,它说明要调用的过程名称;data=、maxdec=都是选项的关键词,等号后面是用户提供的选择信息。
一系列SAS语句组成一段SAS程序。SAS程序中的语句可分为两类步骤:DATA步和PROC步。这两类步骤是所有SAS程序的模块。通常用DATA步产生SAS数据集而用PROC步对SAS数据集内的数据进行分析处理并输出结果。一段SAS程序可由一个DATA步或一个PROC步组成;或者由DATA步和PROC步两部分组成;也可由多个DATA步和多PROC步组成。§2、SAS程序PROC步要求SAS系统从过程库中调出一个过程模块并执行它。PROC步以PROC语句开始,其后紧跟一个过程名(英文关键字);一个过程步可以包含多个相应的SAS语句。例如:PROCMEANSData=score;VAR
x2x3;PROCPRINTData=score;VAR
x1x3x4;注意:一个完整的SAS程序必须以RUN语句结尾方能提交运行。
2.PROC步(过程步)§3、编写SAS程序DATA
score;INPUT
nox1x2x3x4$;CARDS;;RUN;
687165
良好20010874 746168
良好20010875 737546
良好20010876 798079
优秀20010877 757168
良好20010884 858587
优秀20010885 787975
优秀20010886 807679
优秀20010887 858082
良好20010888 777175
良好20010889 677371
优秀20010890 758170
良好20011118 705475
及格20010893 706684
及格20010894 627365
及格20010909 827079
优秀PROC PRINTData=
score;VAR
nox1x2x3x4;RUN;PROCMEANSData=
score;VAR
x1x2x3;RUN;以上一个DATA步和两个PROC步就构成了一个SAS程序。上面SAS程序的输出结果如下:TheSASSystem09:22Monday,August16,2004
10Obsnox1x2x3x4
1
68
71
65
良好
2
74
61
68
良好
3
73
75
46
良好
4
79
80
79
优秀
5
75
71
68
良好
6
85
85
87
优秀
7
78
79
75
优秀
8
80
76
79
优秀
9
85
80
82
良好
10
77
71
75
良好
11
67
73
71
优秀
12
75
81
70
良好
13
70
54
75
及格
14
70
66
84
及格
15
62
73
65
及格
16
82
70
79
优秀
TheMEANSProcedureVariableNMeanStdDevMinimumMaximum------------------------------------------------------------------------------x216
72.8750000
7.8729495
54.0000000
85.0000000x316
73.0000000
9.7911525
46.0000000
87.0000000------------------------------------------------------------------------------(1)书写格式SAS语句可以从一行上的任意位置开始;几个SAS语句可以写在同一行上;一个语句也可以写成几行,只要语句中的单词不被断开即可;在一个语句中各项之间至少要有一个空格;一些特殊符号(如等号=,加号+)可以占据空格的位置,如:total=a+10;与total=a+10;是等价的;SAS语句用大写字母、小写字母或大、小写混合书写均可。(2)注释
SAS语句中有一个注释语句,形式为:
/*注释内容*/凡是空格可以出现的地方,以上形式的注释语句也能出现。例如:
PROCSORT/*对数据集排序*/;就是一个合法的语句。1.SAS程序的书写方法(3)变量的缩写变量在数据集中的实际位置按它们第一次出现的次序被定义。例如:前面的例子的INPUT语句中,no被定义为第一个变量,接着是x1,x2,x3,x4。在一些SAS语句中,需要对变量进行集中处理,SAS采用如下的方式来解决这个问题:形如x1,x2,x3...xn的带序号的变量名,缩写为x1-xn;形如x1,a,b,x2,x3,d的不带序号的变量名,缩写为x1--d;特殊的SAS变量,_numeric_表示所有数值变量;
_character_表示所有字符变量;
_all_表示所有变量。请看上面的数据集,这些变量在数据集中的位置是:nox1agex2x3x4x5下面以VAR语句为例说明SAS变量缩写引用中-与--区别:VARx1-x5;表示只引用变量x1x2x3x4x5,与VAR
x1x2x3x4x5;语句等价。VARx1--x5;表示引用在位置上从x1到x5之间的所有变量x1agex2x3x4x5,与VAR
x1agex2x3x4x5;语句等价。程序的执行当我们在PGM窗口将程序输入完毕,检查修改后就可以提交给SAS系统执行。在LOG窗口显示程序执行中记录的信息,它包括:执行哪些语句;生成的数据集中变量个数及观测个数是多少;程序执行所消耗的时间及出错信息等。SAS过程的输出前例提交执行以后,DATA步产生一个名为score的SAS数据集;后面的两个PROC步产生的结果输出到OUTPUT窗口(如前例的输出)。2.SAS程序的的执行与输出§4SAS表达式
前面简单介绍了SAS语句和SAS程序的构成。要灵活的完成日常的数据管理和统计分析工作,还得很好掌握SAS表达式。
SAS表达式是由一系列算符和运算对象形成的一个指令集,它被执行后产生一个目标值。运算对象是SAS变量和SAS常数;算符是特殊的运算符、函数和括号。表达式分为简单表达式和复合表达式。下列式子都是表达式。X+13LOG(X)LOG10(X)P/A*100AGE<1001-EXP(N/(N-1))A=B=CSTATE=‘CA’
在DATA步中,为了对变量进行变换,建立新变量、条件处理、计算新值及指定新值,都需要使用SAS表达式。一.SAS常数
SAS常数用来表示固定的值,它或者是一个数字,或者是用引号引起来的字符串、或者是其它特殊记号。SAS使用的常数有五种类型:数值常量、字符常量、日期、时间和日期时间常量、十六进制数值常量、十六进制字符常量。我们主要介绍数值常量和字符常量。1.数值常量:一个数值常量就是出现在SAS语句里的数字。很多数值常量完全像通常的数据值一样书写。数值常量可以包括小数点,负号和E记号。例如:1-51.231.2E230.10.5E-10。用E表示法时,如2E4,它表示,或者20000。
SAS系统中,缺失值用小数点来(.)表示。2.字符常量:字符常量是由(单)引号括起来的1~200个字符组成的字符串.例如,在下面的语句中:
IFname=‘TOM’
THENDO;‘TOM’就是一个字符常量。如果字符常量含有引号,则用两个连续的单引号来处理。例如,字符值为TOM’S时,输入:
name=’TOM’’S’
缺失的字符常量值为空字符,表示为’’(两个连续的单引号)。二SAS变量:描述给定特征的数值集合的指标称为变量。SAS变量的特征:变量名、类型、存储长度、标签、输入格式、输出格式存储长度指变量在存储时所需要的字节数。默认情况下所有的变量都定义为8字节。字符变量的长度可为1-200字节,数值变量的长度可为3-8字节。标签是对变量的补充说明,可以为任意字符,长度可多达257个字符。SAS数据集(部分)ObservationsVariablesValue输入输出格式原始数据值SAS变量的值格式化的SAS变量值Informatdollar10.Formatcomma8.548,23125JAN20041609501/25/2004InformatDate9.FormatMMDDYY10.$548,231548231Informat(输入格式)Format(输出格式)日期和时间数据的存储SAS采用数值存储日期和时间形式的数据。在默认情况下,SAS系统以0代表1960年1月1日0时。其它日期在SAS系统中被存储为与该日期相差的天数。例如,1960年1月3日,在系统中存为2。
2004年1月25日,在系统中存为16095。注意:为了使数值型变量显示日期形式,必须使用日期型的输出格式,同样地为了以日期形式输入日期必须使用日期型的输入格式。
SAS变量分为两类,数值变量(Num)与字符变量(Char)。数值型变量只能取数值为值。可以有正负号及小数点(+、-、•),但不能有逗号(,)。数值型是SAS的默认变量类型,默认长度为8位。字符型变量可以取字符、字母、特殊字符以及数字为值。
在DATA步中某些SAS语句所使用的变量名后跟一个美元符号($),即表明该变量是字符型变量,如name$或name$。如果变量后不加$符号,SAS将该变量认为数值型。因此,对字符型变量应加$符号予以说明。在SAS中一个字符变量的取值可以有1—200个字符长,默认长度为8个字符长。三SAS算符
SAS算符是一些符号,它们要求作比较、算术运算或逻辑运算。
SAS使用两种主要类型的算符:
前缀算符和中缀算符前缀算符用于变量、常数、函数或者用括号括起来的表达式。例如:
+Y-25-COS(A)-(x1+x2-100)
前缀算符有:加号,减号,NOT和符号^。中缀算符作用在算符两边的运算对象上,例如6<8。中缀算符一般分为四类:算术算符、比较算符、逻辑算符和其它算符(最大、最小和连接)。1.算术算符:
算术算符表示执行一种算术运算,包括:
**乘方*相乘/相除+相加-相减如果算术算符有一个运算对象是缺失值,运算结果也是缺失值。例如,y=x3+.;则y的值为缺失值(.)2.比较算符:
比较算符确定两个量之间的一种关系,如果这种关系成立,则输出结果为1(真);如果它不成立,则输出结果为0(假)。比较算符包括:
=(EQ)等于^=(NE)不等于
>(GT)大于<(LT)小于
>=(GE)大于等于
<=(LE)小于等于(1)算术表达式的比较考虑表达式:A<=B。如果A的值为4,B的值为3,则表达式A<=B的值为0(假);若A的值为5,B的值为9,则表达式A<=B的值为1(真);若A与B的值均为47,则表达式成立,且其值为1。(2)字符的比较比较的对象可以是数值也可以是字符,但比较的结果总是数值1(真)或0(假)。字符运算对象在字符之间从左到右被比较。字符次序用机器排列次序确定(即按ASCII码排列序列)。例如,表达式’GRAY’>’ADAMS’是真的,它与表达式’ANDRE,C’<’ANDRE,CLYDE’一样,它们的值都是1。3.逻辑算符:
逻辑算符也称为布尔(Boolean)算符,在表达式里通常用来连接一系列比较式。逻辑算符包括:
&(AND)与;|(OR)或;^(NOT)非例如,age=25
ANDsex=‘男’或age=25
&sex=‘男’
age=25
ORsex=‘男’4.运算次序:
关于运算次序,SAS有如下的三个准则:准则1:在括号里的表达式先计算;准则2:较高优先级的运算先被执行。
下面是各运算符的优先等级(排在前面的优先):
1级**、^(not)2级*、/3级+、-、
4级<、<=、=、^=、>、>=、^>、^<5级&(and)6级|(or)准则3:对于相同优先级的算符,左边的运算先做。但有两个例外:对第一级,右边的先做;
2**3**2
<->
2**(3**2)2)当两个比较算符围着一个量时,则等价于一个and运算。例如:12<age<20
<->
12<ageandage<20一.SAS函数的定义1.SAS函数的定义:
SAS函数是一个子程序,它由0个或几个自变量返回一个结果值。每个SAS函数都有一个关键词名字。为了引用函数,要写出它的名字,然后写出一个自变量或几个自变量,它们用括号括起来,这个函数对这些自变量执行某种运算。SAS函数的形式为:
FunctionName(argument,...)
例如:
MEAN(x,y,z,a)
SUM(x,y,z)
MIN(SUM(x,y,z),1000)§5
SAS函数2.SAS函数的分类:
SAS函数分为17种类型,我们需要接触的有:算术函数、数组函数、截取函数、数学函数、概率函数、分位数函数、非中心函数、样本统计函数、随机函数、字符函数、日期时间函数等。二SAS函数的参数和结果1.SAS函数的参数1)参数的类型:参数可以是简单的变量名、常数或者表达式。这个表达式还可以包含其它的函数。例如:
max(cash,credit)sqrt(2500)min(sum(ofx1-x10),y)2)参数的个数:有些函数不需要参数(如DATE()),有些只需要一个参数,有些函数是对几个参数作分析处理。如果函数的参数是表达式,则先计算作为参数的表达式例如:LOG(x+y)这个函数,是先计算x+y,然后调用对数函数LOG来计算x+y的对数。
3)参数的表示法:一般地,当函数有几个参数时,它们之间必须用逗号(,)分隔开。不过,以下三种写法均是合法的:
FunctionName(OFvariable1-variablen)FunctionName(OFvariablevariable...)FunctionName(variable,variable,...)
例如:
sum(ofx1-x5)sum(ofx1x2x3x4x5)sum(x1,x2,x3,x4,x5)
是等价的。请问:sum(ofx1--x5)在什么情况下与上面的式子等价?2.函数的结果:函数的取值通常取决于参数的类型,当参数是字符型变量时,函数的取值为字符;当参数为数值型变量时,函数的取值为数值。三.函数的分类
SAS函数主要分为以下几类:
1、数学函数
abs():求绝对值
mod(var1,var2):求var1除以var2后的余数
sqrt():求平方根值
int():取整函数,截取小数部分
round(var,规定):按规定四舍五入。规定取:0.1,0.01,……log():计算以e为底的对数值
log10():计算以10为底的对数值
2、三角函数
3、概率分布函数
4、样本统计函数
max():求最大值min():求最小值
mean():求均数std():求标准差
sum():求和
5、随机函数
normal():产生一个正态分布的伪随机数
rannor():产生一个标准正态分布的随机数
6、字符函数
substr():从一个字符串中抽取或取代一个指定的子串
trim():去掉字符串尾部的空格
7、日期时间函数
year():从变量中抽取“年份”值
month():从变量中抽取“月份”值
day():返回变量的天数值
mdy(月,日,年):将变量转换成日期值形式具体的函数请查阅:
SASOnlineHelp--->SASLanguage--->SASFunctions上机练习题1、SAS常用的窗口有哪三个?请在三个基本窗口之间切换并记住这些命令。2、请在PGM窗口中输入如下几行程序,提交系统执行,并查看OUTPUT窗和LOG窗中内容,注意不同颜色的含义;并根据日志窗中的信息修改完善程序。
datsex1;
inputtname$agesex;
cards;
xiaomin
191lidong20
1nana182;
prodprontdats=ex1;
run;
procprintdats=ex1;Varnameagesex;
run;第二章结束第三章DATA步及其语句
为了利用SAS系统对数据进行分析,必须将数据转化为SAS数据集的形式。SAS系统提供了功能很强的数据管理模块,通过数据步(DATASTEP)实现对数据的管理。数据步在SAS系统中具有十分重要的地位,概括起来其内容主要有:录入数据并转化为SAS数据集;编辑数据,包括检查和修改数据中的错误、计算新变量等;将数据写入磁盘;对已有的数据集进行管理。如取子集、合并及更新数据集等。学习和掌握好SAS数据集是用SAS系统分析数据的前提,因此必须熟练掌握SAS数据集的有关操作。§1SAS数据步(DATASTEP)例1:DATA
da1;
INPUT
x1x2x3;
y=x1+x2+x3;
CARDS;
31.20.522.40.953.20.80.6;
RUN;
以上这些语句组成DATA步。提交后,SAS系统创建一个名为da1的SAS数据集。它包含5个观测、4个变量。DATA步是用DTAT语句开始的一组SAS语句。用于DATA步的SAS语句共有50多个,一般按性质可分为三类:
1、可执行语句(X),它是可以产生某种操作的语句。
INPUT语句,赋值语句(如,y=x1+x2)等;
2、定位语句(P),它们在执行时并不产生任何操作,但它们在数据步中具有重要地位。
DATA语句,CARDS语句等;
3、说明语句(D),用于给系统提供附加的信息,它们在数据步中的地位通常并不重要。
FORMAT语句,INFORMAT语句等;
利用SAS系统对数据进行统计分析,必须以SAS数据集为基础。因而在进行分析之前必须先将要处理的数据按SAS系统的格式存放在一个数据文件中,这个过程就是建立SAS数据集。
SAS数据集实质上是一张关系型数据表,即通常所见到的二维表格,一行表示一个观察(Observation),一列表示一个变量(Variable),行列的交叉点就是该观察在该变量上的取值。参见下页示意图。§2SAS数据集的建立SAS数据集(部分)ObservationsVariablesValueSAS数据集分为两类:一类是临时数据集,另一类是永久数据集。一.临时数据集的建立
以单个词作为名字的SAS数据集称为临时数据集。在SAS系统运行期间,临时数据集一经建立,则该临时数据集一直存在;如果用户退出SAS系统,则临时数据集立即被删除。用户重新进入SAS系统后则不能再调用这些已被删除的临时数据集了。根据数据的存在形式,临时数据集的建立可分为以下几种情况:1.数据在作业流中
例1就是直接用SAS语句从作业流中输入数据,从而建立所需要的SAS数据集的一个例子。一般的形式如下:DATA语句;INPUT语句;(用于DATA步的其它SAS语句)CARDS语句;[数据行];RUN;2.数据在外部文本文件中例2:在‘c:\txt’子目录下存放有一个名为id.txt的文件,内容如下:(第一列为姓名,第二列为电话)欲用上述数据来建立一个SAS数据集,可用下面的DATA步来完成:
DATA
da2;
INFILE
‘c:\txt\id.txt’;
INPUT
name$phone;
RUN;Jinhua 48332728jianghon 47586978taoxian 23459734zhaoheng 85743627shanmei 12395863xuli 74857362xinwei 23485748
从外部文本文件中读入数据来建立SAS数据集的一般形式为:
DATA语句;
INFILE语句;
(用于DATA步的其它SAS语句) RUN语句;这里,需要注意两点:不需要CARDS语句。INFILE语句的作用是打开一个外部文本文件,其格式为:
INFILE’文件说明’;这里,文件说明是指所要引用的外部文件所在的磁盘路径和文件全名,应用单引号将文件说明括起来。对于这个‘文件说明’,我们还可以采用下面的方式来处理:
m
’n:\txt\id.txt’;Datada2;Infile
m;inputname$phone;run;
在这段程序中,语句的作用是规定了一个文件标记m
,并用它来表示外部文件id.txt的全路径文件名。只要在程序中用语句作了这样的定义,就可以在程序的任何位置用m来引用这个外部文件id.txt了。可以看出,infile’n:\txt\id.txt’;与
m
’n:\txt\id.txt’;
infile
m;
这两句起着同样的作用。3.数据来自其它SAS数据集例3:datada3;Setda1;/*da1是已经存在的SAS数据集*/ifx1<=5;/*选择x1小于或等于5的观测*/run;从一个或几个已存在的SAS数据集产生新的SAS数据集的DATA步的一般形式为:
DATA语句;
SET|MERGE;
(用于DATA步的其它SAS语句) RUN;这里,SET、MERGE语句用来识别已存在的SAS数据集。竖条“|”表示用户可以使用这些语句中的一个。
综上所述,数据集的建立是通过数据步来实现的。每个数据步开头的DATA语句标志数据步的开始,其它的语句称为程序语句,因为SAS把它们转换为机器语言,每次通过DATA步来执行它们。SAS通过INPUT、SET、MERGE等语句读入每一个观测。通常,在原始数据含有多个观测的情况下,系统将重复执行这些程序语句直到把输入数据读入完毕。程序语句还可能含有让DATA步的一些语句执行很多次的语句,例如DO循环语句等。若数据步中不包含INPUT、SET、MERGE语句,则程序语句只执行一次。SAS系统为每个DATA步设置了一个自动变量_N_,它的值表示这个DATA步已经执行的次数。在DATA步的程序语句中可以使用这个变量。例如:datada1;inputx1x2x3;y=x1+x2+x3;cards;
31.20.522.40.953.20.80.6;Run;
这些语句要求SAS产生一个名为da1的数据集,从输入数据行读3个数值给相应的3个变量,并建立第四个变量y。在读入数据时,SAS将变量x1,x2,x3视为一个程序数据向量,按INPUT语句的指示读当前记录的数据值,然后又执行程序语句,把y的值添加到程序程序数据向量中去。因此,对这个DATA步而言,程序数据向量包含4个变量:x1,x2,x3,y。当最后一个程序语句执行后,在程序数据向量中的这些值(即一个观测)自动地输送到正被创建的数据集da1中,然后SAS返回去再执行DATA步。我们这个例子中共有5行数据,则这个DATA步将执行5次,数据集da1中包含5个观测,每个观测有4个变量。二.建立数据集的相关语句1.DATA语句
DATA语句表示一个数据步的开始,并给出正被创建的SAS数据集的名字。语句格式:
DATA[data-set-name-1[data-set-options-1]]...
其中:
data-set-name:表示在这个DATA步中将要建立的数据集名字,可以是一个或多个。
Data-set-options:告诉系统关于正被创建的这个数据集的更多信息。这些选项用括号括起来并跟在相应的数据集名字的后面。例如:
datanew(drop=y);/*列出不包含在数据集中的变量y*/
datanew(keep=x1x2);/*列出包含在数据集中的变量x1,x2*/datanew(label=‘healthclubdata’);/*给数据集一个附加标签*/
datanew(rename=(x1=ux2=v));/*把new中的变量x1,x2更名为u,v*/DATA语句中数据集名的选择:1)省略数据集名:如:
data;
这时,系统仍建立一个数据集,并将自动地把一个作业中所建立的第一个数据集命名为data1,第二个数据集命名为data2,...等等。2)使用单个词(单水平)的名字:例如:
dataone;
表示建立一个名为one的临时数据集。多个数据集名字的使用1)建立观测子集假如有n个观测数据,它们是1981,1982,1983这三年中记录的一些资料,我们想把每一年的资料独立构成一个数据集进行分析处理,使用下面的语句:data
year81
year82year83;inputyearx1-x20;ifyear=1981thenoutput
year81;elseifyear=1982thenoutput
year82;elseifyear=1983thenoutput
year83;cards;数据行;2)建立变量子集如果我们想创建几个包含不同变量组的子集,可以使用数据集的选项来实现。例如:dataone(keep=yearx1-x5)two(keep=yearx6-x20)three(drop=x13);inputyearx1-x20;cards;数据行;2.INPUT语句:描述一个输入记录中数值的排列情况,同时给相应的变量赋予输入值。INPUT语句只能用来读入跟在CARDS语句之后的数值或存放在外部文件中的数据。如果数据已经在一个SAS数据集中,则要使用SET、MERGE、UPDATE或MODIFY语句。
INPUT语句有:表输入(自由输入)、列输入、格式化输入等方式。我们只介绍表输入方式:语句格式
INPUTvariable-name-list[$][@@];
这里,$用来指出它前面的变量是字符型的。如果省略$,则默认前面的变量为数值变量。至于[@@]这个记号,我们放在后面去讨论。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商品混凝土合作协议书
- 帮父母保管财产协议书
- 村集体房屋购买协议书
- 耗材质保协议书
- 废木材买卖合同协议书
- 合伙人同股合同协议书
- 财产遗赠协议书
- 租房补偿协议书
- 秘书补充协议书
- 联防联保协议书
- 2025-2030年中国缓释和和控释肥料行业市场现状供需分析及投资评估规划分析研究报告
- 卫生法律法规的试题及答案
- 2025届湖北省黄冈市黄州中学高考生物三模试卷含解析
- 砌砖理论考试题及答案
- 人格性格测试题及答案
- 2025-2030年中国电子变压器市场运行前景及投资价值研究报告
- 2024年广东省广州市越秀区中考二模数学试题(含答案)
- 骨科科室工作总结汇报
- 三基中医培训试题及答案
- GB 28050-2025食品安全国家标准预包装食品营养标签通则
- 河北省石家庄市2025届普通高中毕业年级教学质量检测(二)数学试卷(含答案)
评论
0/150
提交评论