BookmarkSubscribeRSS Feed
desireatem
Pyrite | Level 9

proc iml;

use kaplan;

read all  var{time Survival survival1};

close;

Survival1 = DM[,3];Survival = DM[,2]; time = DM[,1];

n = nrow(DM);  

segment = J(nrow(DM),1,1); print segment;

do i = 2 to nrow(DM);

SS=survival1-survival1[i-1];

TT=time[i+1]-time;

DX = SS*TT;

end;

create kaplann var{time Survival survival1 TT DX DX};

append;

quit;

ERROR: (execution) Matrix has not been set to a value.

operation : [ at line 1545 column 34

operands  : DM, , *LIT1003

DM      0 row       0 col     (type ?, size 0)

*LIT1003      1 row       1 col     (numeric)

         2

statement : ASSIGN at line 1545 column 21

ERROR: (execution) Matrix has not been set to a value.

operation : [ at line 1545 column 49

operands  : DM, , *LIT1004

DM      0 row       0 col     (type ?, size 0)

*LIT1004      1 row       1 col     (numeric)

         1

statement : ASSIGN at line 1545 column 40

ERROR: (execution) Invalid operand to operation.

operation : J at line 1547 column 12

operands  : _TEM1001, *LIT1005, *LIT1006

_TEM1001      1 row       1 col     (numeric)

         0

*LIT1005      1 row       1 col     (numeric)

         1

*LIT1006      1 row       1 col     (numeric)

         1

statement : ASSIGN at line 1547 column 1

ERROR: Matrix segment has not been set to a value.

statement : PRINT at line 1547 column 28

1 REPLY 1
Vince28_Statcan
Quartz | Level 8

Pretty sure you have figured that out in 5 days but you simply forgot to read your data INTO DM

so

proc iml;

use kaplan;

read all var{time survival survival1} into DM;

close;

Your DO loop will also crash as you will eventually  try to get time[dim(DM)+1] which is out of bounds. I don't know if it was intended that the time used differed from the survival columns used so I'll let you figure out how you change it, either change SS= and loop from 1 to dim(dm)-1 or change TT=

Vincent

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 1 reply
  • 2366 views
  • 0 likes
  • 2 in conversation