如何将 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;
我正在尝试使用带有 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;