Unit15Sas用在DATA步的控制语句.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unit15Sas用在DATA步的控制语句

用在DATA步的控制语句 DATA步的基本概念、流程和有关文件的操作语句我们前面已介绍。但我们所介绍的DATA步中的SAS语句都是按语句出现的次序对每一个观测进行处理。有时需要对一些确定的观测跳过一些SAS处理语句,或者改变SAS语句的处理次序,就需要用到DATA步中的控制语句,实现SAS程序的分支、转移和循环等改变处理次序的功能。 SAS系统提供的控制语句从实现功能的角度看主要有以下五大类: 实现循环(DO语句) 实现选择(SELECT语句) 实现分支(IF语句) 实现转移(GOTO语句) 实现连接(LINK语句) 实现循环(DO语句) 循环程序中使用DO语句的主要形式有四种,如下所示: DO语句的程序格式之一: IF条件表达式 THEN DO ; 一些SAS语句 ; END ; DO语句的程序格式之二: DO 变量=开始值 TO 终值 BY 步长值 ; 一些SAS语句 ; END ; DO语句的程序格式之三: DO WHILE (条件表达式 ) ; 一些SAS语句 ; END ; DO语句的程序格式之四: DO UNTIL (条件表达式 ) ; 一些SAS语句 ; END ; DO WHILE 和DO UNTIL语句中的表达式是用括号括起来的。两种循环程序格式的区别是,对条件表达式的判断位置。DO WHILE是在循环体的开头,而DO UNTIL是在循环体的结束,也就是说DO UNTIL至少执行循环体中一些SAS语句一次。 下面我们举例来说明DO语句的使用。 使用循环DO组产生随机数数据集 例如,我们需要产生一组均匀分布的随机数流的数据集,程序如下: Data DoRanuni ; seed = ; Do I = 1 to 10 by 2 ; X1=ranuni(seed ) ; X2=ranuni(seed ) ; Output ; End ; Proc print data=DoRanuni ; Run ; 程序中的X1和X2都采用相同种子变量值SEED产生的均匀分布的随机数流。在数据步DATA中使用DO循环语句时常常与OUTPUT语句配合来产生数据集。OUTPUT语句作用是把当前的观测输出到正在被创建的数据集DoRanuni中。第一次顺序执行产生Seed、I、X1、X2四个变量,OUTPUT输出后,遇到END语句回到DO语句,产生I、X1、X2变量的第二次值,Seed变量因为没有遇到DATA语句,继续保持原来值,DO-END循环结束后,DATA步也就结束了。均匀分布随机数是最基本也是最重要的随机数,其他分布的随机数都可以用均匀随机数经过变换得到。最常用的均匀分布随机函数是RANUNI(seed),231-1,乘子为397204094的素数模发生器。Seed必须是小于模231-1任何数值的常数。相同的Seed值会产生相同的随机数序列数,但不同次调用随机函数所产生的值通常是不同的,因此计算机所产生的随机数是一种伪随机数。这个程序中的X1和X2都采用相同种子变量值SEED产生的均匀分布的随机数流。SAS系统提供产生了11种常见分布随机数的函数,如表15.1所示,随机数是我们实验和研究问题的重要的输入数据。因此要能编写程序,产生符合要求分布的随机数数据集。 程序运行结果如图15.1所示。 表15.1 SAS系统的各种随机函数 随机数函数名 作 用 UNIFORM(seed) 产生(0,1)区域均匀分布随机数,乘同余发生器 RANUNI(seed) 产生(0,1)区域均匀分布随机数,素数模发生器 NORMAL(seed) 产生标准正态分布随机数,利用中心极限定理近似公式 RANNOR(seed) 产生标准正态分布随机数,利用变换抽样法 RANEXP(seed) 产生λ=1的指数分布随机数 RANGAM(seed,alpha) 产生伽马分布随机数,alpha0,seed为任意数值 RANTRI(seed,h) 产生三角分布随机数,0h1,seed为任意数值 RANCAU(seed) 产生标准柯西分布随机数 RANBIN(seed,n,p) 产生二项分布随机数,n0的整数,0p1,seed为任意

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档