我将存在于不同表中的几个数据快照堆叠在一起。以下代码迭代大量带日期戳的快照并提取键值对。&InVar.
有没有一种简单的方法可以在这个 DATA STEP中附加宏变量的值?
一个简单的示例可能具有&channels.
和20140106 20140120 20140127
的&nchannels.
值3
。
DATA kv_map;
SET
%DO q=1 %TO &nchannels;
%LET InVar=%SCAN(&channels,&q);
%PUT &InVar;
sourcedata.datasnapshot_&InVar.(keep=var_key var_value)
%END;
;
RUN;
输出将是:
kv_map
╔══════════╦═════════╦════════════╗
║ var_key ║ var_map ║ provenace ║
╠══════════╬═════════╬════════════╣
║ aaa ║ 123 ║ 20140106 ║
║ bbb ║ 432 ║ 20140106 ║
║ ccc ║ 313 ║ 20140106 ║
║ fff ║ 654 ║ 20140120 ║
║ ggg ║ 125 ║ 20140120 ║
║ iii ║ 843 ║ 20140120 ║
║ jjj ║ 864 ║ 20140127 ║
╚══════════╩═════════╩════════════╝
(使用http://goo.gl/JIeqZ创建的表)