gpt4 book ai didi

sas - 如何在 sas 数据步骤中为每个观察执行一段宏?

转载 作者:行者123 更新时间:2023-12-04 17:12:43 27 4
gpt4 key购买 nike

假设我允许用户使用通用用户界面编写自己的变量计算宏:

%macro calculate(var_name, var_value);
%* Some user-defined calculation;
%mend calculate;

然后在数据步骤中,我可以使用用户定义的宏计算一个新变量:
data dataset;
set dataset;
new_var = %calculate('variable1', variable1); * This doesn't work. It just shows my indication.
run;

其中 variable1 是数据集中的变量。在这里,我想传入变量名和变量的实际值。计算后,将值放入new_var。

我怎样才能做到这一点?

最佳答案

是否需要使用宏来实现这一点?这听起来像是 PROC FCMP 将是最有用的,因为它允许您定义自己的函数或子例程(fcmp="函数编译器"),可以像内置函数一样在数据步骤中使用。

这是一个简单的例子:

proc fcmp outlib=sasuser.funcs.math;
function calc(var);
newvar=log(var); /*user defined stuff here - can be simple or complex*/
return(newvar);
endsub;
run;

option cmplib=sasuser.funcs; /*tell SAS where to look for functions*/
data _null_;
set sashelp.class;
newvar=calc(height); /*call your new function */
put newvar=;
run;

关于sas - 如何在 sas 数据步骤中为每个观察执行一段宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6288980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com