【发布时间】:2019-12-24 07:56:21
【问题描述】:
所以我有一个类似这样的宏,目的是计算信息值:
%macro iv_calc(x,event,varlist);
data main_table;
set x(keep=event varlist.);
run;
/****Steps to compute IV ****/
%mend;
X 是数据集的名称,event 是因变量名称,varlist 具有宏变量格式的所有自变量的名称。
varlist 中的变量数量未知,可能在 100 到 2000+ 之间变化。因此,宏需要很长时间才能运行。我是新手,所以我的要求是了解是否有办法将varlist 拆分为 2,并并行运行相同的宏(因为需要事件来计算信息值),以减少运行时。我的第一个想法是使用 shell 脚本,但变量的数量是未知的,问题就在这里。任何微小的帮助将不胜感激。非常感谢。
【问题讨论】:
-
那么shell脚本的问题在哪里呢?给一个参数使用前半部分,另一个使用后半部分。在 sas 中拆分列表或除奇偶数。
-
请提供您尝试并行化的代码的minimal, verifiable and complete example。您当前的示例太有限,任何人都无法提供有用的建议。
-
要明确的是,宏生成的源代码很可能需要很长时间......有点像花 4 个小时来计划一个 8 天的旅行并说计划需要很长时间时间。
-
鉴于您提供的代码,我们不知道您如何使用该宏变量,也无法提供任何加快速度的方法。可能有也可能没有,您需要提供更多详细信息。
标签: parallel-processing sas logistic-regression sas-macro