Calcite | Level 5

## Nested do loop

I have the following code:

proc iml;

use prepped;

hstar = j(200000,1,.);

do i = 1 to 2;

do j = 1 to 6;

hstar[100000*(i-1)+j] = hhat;

end;

end;

quit;

hstar[100000*(i-1)+j] = hhat;

gives the following error:

ERROR: (execution) Matrices do not conform to the operation.

operation : [ at line 124 column 9

operands: HSTAR, _TEM1003, HHAT

HSTAR 200000 rows    1 col       (numeric)

_TEM1003 1 row          1 col       (numeric)

HHAT 200000 rows       1 col       (numeric)

statement: ASSIGN at line 124 column 4

Can anybody help with this?

Thanks.

1 ACCEPTED SOLUTION

Accepted Solutions
SAS Super FREQ

## Re: Nested do loop

For each value of i and j,  hstar[100000*(i-1)+j] is a scalarl value.

However, hhat is a vector with 200,000 rows. You can't assign a vector to a scalar.

If you describe what you're trying to achieve, someone could help further.

2 REPLIES 2
SAS Super FREQ

## Re: Nested do loop

For each value of i and j,  hstar[100000*(i-1)+j] is a scalarl value.

However, hhat is a vector with 200,000 rows. You can't assign a vector to a scalar.

If you describe what you're trying to achieve, someone could help further.

Calcite | Level 5

## Re: Nested do loop

Thanks!

What I needed to do was

hstar[100000*(i-1)+j] = hhat[100000*(i-1)+j];

From The DO Loop