Statistical programming, matrix languages, and more

Nested do loop

Accepted Solution Solved
Reply
New Contributor
Posts: 2
Accepted Solution

Nested do loop

I have the following code:

proc iml;

     use prepped;

     read all;

     hstar = j(200000,1,.);

     do i = 1 to 2;

          do j = 1 to 6;

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

          end;

     end;

quit;

The line that reads

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.


Accepted Solutions
Solution
‎05-06-2012 05:25 AM
SAS Super FREQ
Posts: 3,615

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.

View solution in original post


All Replies
Solution
‎05-06-2012 05:25 AM
SAS Super FREQ
Posts: 3,615

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.

New Contributor
Posts: 2

Re: Nested do loop

Thanks!

What I needed to do was

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

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 430 views
  • 0 likes
  • 2 in conversation