SAS9.2新功能--在DATA STEP中使用自定义函数

时间:2023-01-19 16:18:00
SAS9.2已经蠢蠢欲动了
很多初学SAS的人都不明白为什么SAS不支持自定义函数,而只能使用内建函数
现在SAS9.2终于突破这一限制,可以*的写自己的函数,并被DATA 步使用
例子如下:

proc fcmp outlib=sasuser.funcs.trial;
  function study_day(intervention_date, event_date);
    if event_date < intervention_date then
      return(event_date – intervention_date);
    else
      return(event_date – intervention_date + 1);
  endsub;
 
options cmplib=sasuser.funcs;
data _null_;
  start = '15Feb2006'd;
  today = '27Mar2006'd;
  sd = study_day(start, today);
  put sd=;
run;

注明,只有SAS9.2才能执行上面代码,SAS9.1.3版本执行上面代码时,前面2个语句不会报错,但在执行DATA STEP时就会报函数找不到
因为在SAS9.1.3中,proc fcmp过程定义的函数还只能在下面过程中使用

CALIS
COMPILE
DISTANCE
GA
GENMOD
MODEL
NLIN
NLMIXED
NLP
PHREG
RISKDIMENSIONS
ROBUSTREG
SIMILAR
SYLK