【问题标题】:SAS9.3 PROC FCMP can not save user defined functionSAS9.3 PROC FCMP 不能保存用户定义函数
【发布时间】:2016-11-18 14:54:52
【问题描述】:

我想使用 proc fcmp 在 SAS9.3 中定义我自己的函数。 操作系统是 aix 64 位。 这是我的代码(reg_func.sas):

proc fcmp outlib=mylib.funcs.rule;
function gen_sub_rule();
put "this is a test function";
return (0);
endsub;
run;
quit;

但是在运行 sas reg_func.sas 之后,我收到了一些警告

WARNING:Cannot wirte model to data set mylib.funcs because it is curently opened or already exists as a standart data set.Will revert to V8 CATALOG instread. WARNING:Failed to save function gen_sub_rule to mylib.funcs.rule.

谁能帮忙?谢谢!

【问题讨论】:

  • 您是否尝试过不同的 outlib 选项?
  • @Reeza,谢谢,我试过这种方式,在我的 proc fcmp 代码之前添加 [libname mylib '/home/ap/sas/mydir';] 。它有效。但还有另一个问题。,当我使用 deletefunc 时,sas 告诉这个减弱:SUBROUTINE 'GEN_SUB_RULE' 找不到删除。
  • 发布您如何尝试删除它。没有看到代码只假设你做错了什么:)
  • @Reeza,这是我的删除代码:proc fcmp outlib=mylib.funcs.rule; deletefunc gen_sub_rule;run;quit;
  • 这是一个警告,而不是错误。我不知道如何摆脱它。你的函数真的被删除了吗?

标签: sas proc fcmp


【解决方案1】:

解决了!转介https://communities.sas.com/t5/Base-SAS-Programming/Irritating-warning-in-Proc-FCMP/td-p/16216
关键是 cmplib 选项,这是我的代码:

    libname mylib 'H:\saslib\testlib';
    proc fcmp outlib=mylib.funcs.rule;
      function calc(var);
         newvar=log(var);
         return(newvar);
      endsub;
     function gen_str(var1 $, var2 $, var3 $) $100;
        length newvar $100;
        newvar=catx('#', var1, var2, var3);
        return(newvar);
      endsub;
    Run;

    /*list the source code*/
    Options cmplib=_null_; 
    proc fcmp library=mylib.funcs;
      listfunc calc gen_str;
      run;
    Quit;

    /*using func*/
    options cmplib=mylib.funcs; 
      data _null_;
        numret=calc(20);
       charret=gen_str('what', 'is', 'your');
       put numret= charret=;
    run;

    /*delete the func*/
    options cmplib=mylib.funcs; 
    proc fcmp outlib=mylib.funcs.rule;
    deletefunc calc;
    run;
    quit;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2012-07-25
    • 2022-01-07
    • 2016-07-20
    相关资源
    最近更新 更多