我似乎无法找到这个网上资料...SAS执行循环的一个Proc步骤
我的变量我想要做一个总结PROC名单。由于这些proc摘要是针对每个变量单独执行的,因此如果我可以找到一些方法来循环变量列表,然后创建一个输出为excel或仅仅是一个结果组合表,这些结果清楚地表明结果属于哪个到什么变量。
问题是我只知道在一个datastep中循环工作,我将如何得到这个为proc步骤工作?我可以写一个proc步骤的宏,然后将它嵌入到一个datastep中?这会导致它正常运行吗?即
data _NULL_;
set table_of_vars;
do i=1 to (number of vars in the table);
_n_ = i;
%let var = _n_;
%macro_proc_summ(&var.);
end;
和随后的另一个代码合并单个输出,或者宏也可能产生总是附加信息的输出。
很明显,代码很粗略,但从概念上可以工作?
编辑:为了更清楚一点,这是代码看起来像没有循环的地方。
%macro Analysis(var); %macro _; %mend _;
proc summary data=masterdata nway missing;
class &var.;
output out = &var._summ (drop = _type_);
run;
%mend;
endrsubmit;
%Analysis(var1);
%Analysis(var2);
%Analysis(var3);
.
.
.
.
%Analysis(var100);
从这里我们既可以:
- 出口var1_summ,var2_summ到Excel单元格A1,D1等
- 还是第一次我们每一个人的总结合并成一张大桌子,然后导出到 一些图形应用程序来观察趋势。
无论哪种方式,你可以看到这些是单独的Proc步骤,这可以在循环中更快地完成。
您可以一次传递多个变量PROC总结和产生的组合输出。你根本不需要一个宏。 – Reeza
@Reeza - 我觉得呢?我想“分类”一堆变量,并在单步完成时,输出不会唯一地组合变量内的各个级别......例如,Var1可以是Shoes,而Var2可以是Shirt,并且它们会If我将它们全部列在一个总结中,它将奇怪地合并信息...... – Wolfspirit
你将如何处理数字和字符变量?您必须以某种方式处理它们,以便您可以将它们堆叠起来。听起来你想要表1报告文件 - 总结?如果是这样,你应该搜索lexjansen.com上有很多例子。否则,请使用call execute循环访问值。特别是如果参数在您的数据集中。 – Reeza