【发布时间】:2019-02-05 01:51:22
【问题描述】:
目前我正在尝试练习 SAS 宏,虽然它们在大多数情况下看起来合乎逻辑,但我在文档中几乎没有找到关于如何提高使用宏的数组效率的信息。有没有不同的方法,我做这一切都是错的?我想在工作中改进一些 SAS 代码,所以这只是一个我学习如何去做的简单示例。
这是我原来的基本数组代码:
data dataset_new;
set dataset_old;
array array_one{12} value01-value12;
do i = 1 to 12;
if array_one{i} = '121' then sponsor = 'yes';
if array_one{i} in ('44', '55') then participant = 'active';
end;
run;
这是我尝试在其中添加宏的蹩脚尝试。
%let maximum = 10;
%MACRO SPORTS(START,maximum);
data dataset_new;
set dataset_old;
array array_one{12} value01-value12;
%DO i = &START %TO &maximum ;
if array_one{i} = '121' then sponsor = 'yes';
if array_one{i} in ('44', '55') then participant = 'active';
%END;
%MEND SPORTS;
run;
感谢您对如何执行此操作的任何想法。
【问题讨论】: