Calcite | Level 5

## Do loop Output

Hi,

I want  show,  before ending DO loop ,the observation N and the vector P  for any i value in data_set

in this proc IML :

proc iml;

M_NP ={1,

2,

3,

4,

5,

6};

P= j(1000,1,.);
j=0;
do i=1 to 5;

n= round((M_NP[i+1]-M_NP)* 100);
U= j(n,1,.);
call randgen(U,"uniform");
P[j+1:j+n]= M_NP+(M_NP[i+1]-M_NP)* U;
j=j+n;
end;
quit;

How do i do?

3 REPLIES 3
SAS Super FREQ

## Re: Do loop Output

If you want to print N and P for each iteration, use

print i N P;

Since P has 1,000 rows, this is a lot of printing of mostly missing values. You could also say

print i N (P[j+1:j+n])[label="P"];

Calcite | Level 5

## Re: Do loop Output

thank you very much...

but If i want show N and P for each iteration in data set  (the print in output is too long),

how do I do?

SAS Super FREQ

## Re: Do loop Output

You want to create a data set that contains N and P during the loop?

Use the CREATE and APPEND statments like this:

create Out var {N Pi};

do i=1 to 5;

n= round((M_NP[i+1]-M_NP)*100);

U= j(n,1,.);

call randgen(U,"uniform");

Pi = M_NP+(M_NP[i+1]-M_NP)*U;

append;

end;

close;

From The DO Loop