如何将 PROC FCMP (SAS) 中 SOLVE 函数的输出分配给全局 variable/table?

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

我正在尝试使用带有 SOLVE 函数的 PROC FCMP 来求解非线性方程并自动将解插入 table。 例如

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

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

在 运行 之后,上面的代码 x 将显示在结果中,但我无法在进一步的代码中使用它。 我试图将 x 保存为宏变量或 table 但对我没有任何作用。 有人可以帮帮我吗?

创建第二个 fcmp 函数来 return 求解。

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;