我刚从这个页面学到了 PROC FCMP :
http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a003181727.htm
该函数在本地工作正常,所以我想知道我是否可以远程使用此proc。在我看来,只要我更改此功能的输出库,它就可以在远程服务器中使用。这是我的代码:
proc fcmp outlib=rwork.funcs.trial;
function study_day2(intervention_date, event_date);
n = event_date - intervention_date;
if n >= 0 then
n = n + 1;
return (n);
endsub;
options cmplib=rwork.funcs;
run;
rsubmit;
data _null_;
start = '15Feb2008'd;
today = '27Mar2008'd;
sd = study_day2(start, today);
put sd=;
run;
endrsubmit;
对于第1部分,我注意到该功能已保存在RWORK库中:
注意:函数study_day2已保存到rwork.funcs.trial。
然而,在运行第二部分后,我收到此错误:
错误68-185:函数STUDY_DAY2未知或不可能 访问。
有没有办法解决这个问题?谢谢!
答案 0 :(得分:0)
假设您想以这种方式编程(在本地计算机上编译该函数并远程运行它),并且您通过SAS / CONNECT连接的计算机与您的操作系统和位数(64/32位)相同在本地计算机上,您需要在rsubmit中运行options cmplib=rwork.funcs;
(假设rwork
指向您的远程工作目录,您可能需要将其更改为options cmplib=work.funcs;
)。
rsubmit;
options cmplib=work.funcs;
data _null_;
start = '15Feb2008'd;
today = '27Mar2008'd;
sd = study_day2(start, today);
put sd=;
run;
endrsubmit;
该选项不适用于proc fcmp
,因为您似乎根据您找到它的位置来思考。它告诉SAS在使用函数时要查看的位置。 (outlib
中的proc fcmp
选项是将其存储在那里所需的选项。)
如果您的远程服务器与本地计算机的操作系统或位数不同,则无法执行此操作,并且需要将整段代码放在rsubmit
中。