macros - sas 宏参数的多个值
问题描述
我是 SAS 宏编程的新手,需要启用以下宏才能处理和处理其宏参数的多个值。您好,
data have;
input name $ ACCOUNT_ID $ cust_id;
cards;
ARTHUR CC1234 1234
TOM eil1235 1235
MIKEZ tb1236 1236
MATT mb1237 1237
LIZ TB1238 1238
PIZ VB1239 1239
TAN MB1240 1240
PANDA . 1241
;
run;
%MACRO algo (IN_DS=,VAR_LIST=,DATA_TYPE_LIST=,OUT_DS=);
DATA &OUT_DS;
SET &IN_DS;
%If &data_type_LIST = num %then
&var_LIST=sum(&VAR_LIST,2);
%else &var_LIST=cats(&var_LIST,'re');;
run;
%mend;
%algo(IN_DS=HAVE,VAR_LIST=CUST_ID,DATA_TYPE_LIST=num,OUT_DS=out1);`
我现在需要启用此宏,以便能够为宏参数传递多个值。像这样的东西:
%algo(IN_DS=HAVE,VAR_LIST='CUST_ID,ACCT_ID',DATA_TYPE_LIST='num,char',OUT_DS=out1);
有人可以帮我在宏代码中启用此功能。
解决方案
参数参数应在宏调用中用 %STR() 进行宏引用。
尝试
%algo
( IN_DS=HAVE
, VAR_LIST= %STR (CUST_ID, ACCT_ID)
, DATA_TYPE_LIST=num
, OUT_DS=out1
);
宏引用不同于用于字符文字的 DATA 步引用。
推荐阅读
- python - 带术语的日期数据处理
- mysql - 如何在 Doctrine Query Builder 中改进/重写此查询(不包含子查询)
- powerbi - 在 Power BI 中未选择任何筛选器时如何对不同列进行求和
- java - 无法使用扫描仪接受多个输入
- ionic-framework - NPM Install 没有安装我的 ionic 项目中的所有包
- xcode - 函数“UnityGetGLView”的隐式声明在 C99 中无效
- ios - 移动到另一个屏幕时保持 CABasicAnimation 运行
- ffmpeg - 使用偏移量调用时 FFMPEG 失败
- php - PHP密码验证问题
- linux-kernel - 如何防止 Yocto 项目 BadValue 错误?