p********r 发帖数: 1465 | 1 比如:
data step 1
data step 2
proc 1
proc 2
.
.
.
给这四个一起做循环,比如循环100次。应该如何写code呢?
do,while 那些的应该只能在data step里面做的吧?
是不是需要写macro呢?
请教高人指点,谢谢。 |
a********i 发帖数: 205 | 2 你写的好概括,不知道怎么分析了
我理解是要用macro做二重循环吧 |
w*****m 发帖数: 414 | |
p********r 发帖数: 1465 | 4 我是想这样做:
1、有一个叫table的数据,我随机把他分成两个,table1和table2(table1包含80%
table的数据,table2包含剩余的20%)
2、用table2做一些运算,用proc iml,然后把运算结果输出到result里面。
我想把这个两个步骤循环做1000遍,这样我的result表里面就会出来1000个结果。
请问应该如何做会比较好? |
h******e 发帖数: 1791 | |
p********r 发帖数: 1465 | 6 直接在这几个步骤前面加上 %do %to就行吗? |
a********i 发帖数: 205 | 7
不是吧
我觉得要创建一个宏
%macro table;
%do i=1 %to 1000;
data table&i._1 table&i._2;
set table;
......
run;
proc iml data=table&i._2;
output out=result;
run;
%end;
%mend table;
%table;
不过我不知道你怎么随机选取table,大概要用proc plan?
【在 p********r 的大作中提到】 : 直接在这几个步骤前面加上 %do %to就行吗?
|
p********r 发帖数: 1465 | 8 我是用的
data table1 table2;
set table;
if uniform(0) < .8 then output table1;
else output table2;
run;
不过我稍微试了几次,发觉一个问题:不是每次分组的数目是一样的。比如table里总
共有100个,第一次分,table1里有82个,下一次可能就成了80个…… |