SAS9.2函数的变化

SAS内置函数个数随SAS各版本的变化

sas number

(ALL RIGHTS RESERVED!)
 
另外SAS函数史上发生最大的变革——SAS9.2可以自定义函数
 
SAS9.2终于在广大用户强烈需求下推出了自定义功能(BASE下的,以前在某些模块中可以自定义)。
SAS9.2以后,用户可以自定义函数。
两种途径来自定义函数:使用C,C++或者SAS语言。
提供了PROC PROTO语句来编译C,C++语言编写的函数
提供了PROC FCMP 语句来编译SAS编写的函数   
 
可以像其他的SAS内置函数一样被DATA步,PROC SQL查询语句和FCMP例程调用。这使得程序员使用独立和重复利用的子程序来读写和维护代码变得更容易。
sample:
 
proc fcmp outlib=sasuser.funcs.trial;
  function study_day(start, event);
    n = event – start;
    if n >= 0 then
      return(n + 1);
    else
      return(n);
  endsub;
 
options cmplib=sasuser.funcs;
data _null_;
  start = ’15Feb2006’d;
  today = ’27Mar2006’d;
  sd = study_day(start, today);
  put sd=;
run;

 

log:

sd=41

有着其他如MACRO等工具无可比拟的优点:  自定义函数为SQL查询语句和WHERE子句中提供了数据步逻辑,并且包括了变量范围的安全机制,同样,只要把函数保存在数据集中,同一单位中的SAS程序员使用不同的操作系统也易于分享这些函数。