Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 是否可以在整个流程中循环n次?_Sql_Sas_Sas Macro - Fatal编程技术网

Sql 是否可以在整个流程中循环n次?

Sql 是否可以在整个流程中循环n次?,sql,sas,sas-macro,Sql,Sas,Sas Macro,我目前正在做一个重要的项目,我们使用逻辑回归来预测事件 问题是,我需要生成2个不同的1500人样本,然后进行逻辑回归。整个过程应至少循环50次。你知道循环50次的方法吗 我尝试使用宏: %macro repeat %do i = 1 %to 50; [...] output; end; run; %mend; %repeat(50); 但这行不通。你有什么想法吗?为了解决这个问题,我不得不哄骗编辑认为它已经到达了整个宏的末尾。只需在%macr

我目前正在做一个重要的项目,我们使用逻辑回归来预测事件

问题是,我需要生成2个不同的1500人样本,然后进行逻辑回归。整个过程应至少循环50次。你知道循环50次的方法吗

我尝试使用宏:

%macro repeat
    %do i = 1 %to 50;
      [...]
      output;
      end;
    run;
%mend;
%repeat(50);

但这行不通。你有什么想法吗?

为了解决这个问题,我不得不哄骗编辑认为它已经到达了整个宏的末尾。只需在
%macro
下插入以下代码:

%local DUMMY;
%let DUMMY = %nrstr(%mend);
如果您希望重复测量选择,则只需添加
REPS=n

您可以在此处查看完整答案:

请提供导致问题的代码的详细信息,并包括相应的日志输出。在示例代码中,
%do
没有匹配的
%end
,这将在尝试编译宏时触发明显的错误消息,但是如果没有看到更完整的代码示例,就无法确定这是否是唯一的问题。SAS的方法是一次生成所有样本,2*1500*50=150000,这仍然很小。SAS可以通过分组处理轻松处理,从而完全避免使用宏。上面的文章详细说明了如何实现这一点。谢谢Reeza,我没有想到这种解决问题的方法。但这似乎是一种更有效的随机抽样方法,因为我只选择了一次观察结果,它避免了获得相同观察结果的副本,就像我随机抽样50次一样。