簡體   English   中英

如何將 PROC FCMP (SAS) 中的 SOLVE function 中的 output 分配給全局變量/表?

[英]How to assign output from SOLVE function in PROC FCMP (SAS) to global variable/table?

我正在嘗試將 PROC FCMP 與 function SOLVE 一起使用來求解非線性方程並將解自動插入表中。 例如

proc fcmp;
      /* define the function */
   function inversesqrt(x);
      return(1/sqrt(x));
   endsub;

   y = 20;
   x = solve("inversesqrt", {.}, y, .);
   put x;
run;

運行上述代碼后, x將顯示在結果中,但我無法在進一步的代碼中使用它。 我試圖將x保存為宏變量或表格,但對我沒有任何作用。 有人可以幫我嗎?

創建第二個fcmp function 以返回求解。

options cmplib=work.funcs;

proc fcmp outlib=work.funcs.sandbox;
      /* define the function */
   function InverseSqrt(x);
      return(1/sqrt(x));
   endsub;

   function SolveInverseSqrt(arg);
     return (solve('InverseSqrt', {.}, arg, .));
   endsub;
run;

%let x = %sysfunc(SolveInverseSqrt(20));
%put &=x;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM