SAS中文论坛
标题:
SAS函数&CALL例程介绍与实例精选
[打印本页]
作者:
shiyiming
时间:
2010-10-22 13:32
标题:
SAS函数&CALL例程介绍与实例精选
From sxlion's blog on saslist
SAS函数&CALL例程介绍与实例精选 AN INTRODUCTION OF SAS FUNCTION & CALL ROUTINE AND SELECTED SAMPLE Bruce Shao 摘要: SAS提供了大量的内置函数,并且在数量和内容上不断的发展改进(注:本文所述SAS函数指SAS/BASE模块内的函数)。函数数量的变化非常显著,数量从SAS6.12的二百多个增加到SAS9.2的近五百个。这篇文章前半部分将简单介绍SAS函数的形式和种类,以及SAS系统版本更新过程中数量的变化,对于从SAS9.13升级到SAS9.2后内置函数的数量功能和类型上的变化做详细的介绍,特别会介绍到SAS9.2系统中用户可以自定义函数的情况;后半部分将精选典型类型的常用函数来做实例,你将会在这些例子中得到启示。一旦你学会使用合适的函数,将会使你的工作效率加倍。希望本篇文章能引起你对SAS系统提供的有用工具——SAS函数的关注。 正文: SAS/BASE提供的函数有两种形式:一种是“FUNCTION”(后面用“函数”),可以进行计算或者系统操作并且会返回值;另一种是“CALL routine”(后面用“CALL例程”),用来改变变量的值或者执行其他的系统函数,但不返回值。SAS函数可以非常方便的用于DATA步中,WHERE子句和SQL查询语句中;CALL例程一般用于DATA步中。SAS提供了种类繁多的函数和CALL例程,并且一直在变化发展。 表1中列出了从SAS6.12版本到最新的SAS9.2版本语言参考:字典中函数和CALL例程的个数,图1中描述了函数和CALL例程总数量的变化趋势图。 表1 各SAS版本号中函数和例程的个数 图1 SAS函数和Call例程总数量的变化趋势 SAS/BASE有几类常用的函数:字符函数、字符串匹配函数、数学函数、日期和时间函数、统计函数、随机函数、金融函数、分位数函数等。最新的SAS9.2/BASE模块的语言参考:字典中所列的内置函数发生很多的变化。 在种类方面,SAS9.2语言参考:字典中内置函数,与有26类内置函数的SAS9.13比较,SAS9.2减少了程序响应度量函数(ARM)、货币折算函数(Currency Conversion)、双字节函数(DBCS)等函数种类,新增了算术函数(Arithmetic)、组合函数(Combinatorial)、距离函数(Distance)、财务函数(Finance)、数字函数(Numeric)、搜索函数(Search)、排序函数(Sort),共有30类函数。 在数量及功能方面,SAS9.2语言参考:字典中内置函数比SAS9.13增加了44个函数(包括Call例程),并且有些类型的函数如外部文件函数(External Files)中已有的函数如DOPEN、FOPEN、FEXIST,FILENAME,FILEREF,MOPEN,PATHNAME等函数参数说明被改进;有些函数是从其他模块转过来的,如SAS/ETS的INTCINDEX,INTCYCLE等等; SAS High-Performance Forecasting的HOLIDAY和NWKDOM函数等等; 有些已存在的函数和CALL例程得到增强,如函数CALL POKE, CALL PLKELONG, CALL SCAN, DATDIF, FSEP, INDEX, LAG, SCAN,ZIPSTATE等;PRX函数和例程取代了RX函数和例程,函数RXMATCH, RXPARSE,例程RXCHANGE CALL,RXFREE CALL,REXSUBSTR CALL将不再存在于SAS9.2语言参考:字典中。另外功能强大的SCAN函数和CALL SCAN例程取代了SCANQ函数和CALL SCANQ例程。 SAS9.2系统中函数使用发生的巨大变革是用户可以自定义函数。这样对于用户来说用自定义函数可以取代部分宏语言,模块化编程更容易。与函数比较起来,SAS宏有着不足的地方: 如1,写宏要非常小心谨慎,特别是符号”&”;2,宏可读性差,3自定义函数可以对某些变量其保护作用,不会乱窜现象 4自定义函数是程序更容易模块化,自定义函数可以保存起来,同部门直接可以共享。 [...]
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2