PLease help correct this, I wish to do it by replicates.
This is the code. The data set and error message is below.
CODE
proc iml;
     use Complete_1;
    read all var _all_ into DM;    
      close;
    frequency =DM[,7]; y =DM[,6]; obs=DM[,10]; Censored= DM[,4]; time = DM[,3];  x =DM[,2];replicate=DM[,1];
      use GIB_&p;
    read all var _all_ into Col; 
timeS=time;
locC=loc(censored=1); matrix=J(1,7,2.10);
do im = 1 to 1;
u = unique(Replicate);
byIdx = loc(replicate=u[im]); /* the UNIQUE-LOC trick */
byGroup = DM[byIdx,];
frequency =byGroup[,7]; y =byGroupDM[,6]; obs=byGroup[,5]; Censored= byGroup[,4]; time = byGroup[,3];  x =byGroup[,2];replicate=byGroup[,1];
do j= 1 to frequency[1];
seed=-1;
   A=RANUNI(-1);
     i=max(loc(Col[,j]-A>0));
if i<nrow(time) then   /** do nothing if the last is censored, that is         censored=1*****/
      do;
timeS[locC] = time+ (time[i+1]-time)*((Col[i,j]-A)/(Col[i,j]+col[i+1,j]));
      end;
end;
sim=repeat(im,nrow(time),1);
temp=obs||censored||time||Y||timeS||X||Sim||replicate;
Matrix=matrix//temp;
end; matrix=matrix[2:nrow(matrix),];
create impute_t_&p var{obs censored time Y timeS X  replicate};
      append from matrix;
quit;
ods trace on/listing;
proc sort data=impute_t_&p;
by replicate;
run;
variables:
col1=DM[,8]
 frequency =DM[,7]; y =DM[,6]; obs=DM[,10]; Censored= DM[,4]; time = DM[,3];  x =DM[,2];replicate=DM[,1]
1  | 1  | 0  | - 0.005959
 
  | 1  | 0  | - 2.19394
 
  | 3  | - 8.00000
 
  | 
2  | 1  | 0  | - 0.005959
 
  | 1  | 0  | - 2.19394
 
  | 3  | - 7.11111
 
  | 
3  | 1  | 0  | - 0.005959
 
  | 1  | 0  | - 2.19394
 
  | 3  | - 6.22222
 
  | 
4  | 1  | 0  | - 0.006302
 
  | 0  | 1  | - 2.10653
 
  | 3  | - 5.33333
 
  | 
5  | 1  | 0  | - 0.001931
 
  | 0  | 1  | - 2.10633
 
  | 3  | - 4.44444
 
  | 
6  | 1  | 0  | - 0.001931
 
  | 0  | 1  | - 2.10633
 
  | 3  | - 3.55556
 
  | 
7  | 1  | 0  | - 0.000076
 
  | 0  | 1  | - 2.09604
 
  | 3  | - 2.22222
 
  | 
8  | 1  | 0  | - 0.011368
 
  | 0  | 1  | - 2.11672
 
  | 3  | - 1.55556
 
  | 
9  | 1  | 0  | - 0.001074
 
  | 0  | 1  | - 2.10064
 
  | 3  | - 0.88889
 
  | 
10  | 1  | 0  | - 0.001074
 
  | 0  | 1  | - 2.10064
 
  | 3  | - 0.00000
 
  | 
11  | 2  | 0  | - 0.005959
 
  | 1  | 0  | - 2.19394
 
  | 3  | - 8.00000
 
  | 
12  | 2  | 0  | - 0.013170
 
  | 0  | 1  | - 2.13512
 
  | 3  | - 7.00000
 
  | 
13  | 2  | 0  | - 0.006302
 
  | 0  | 1  | - 2.10653
 
  | 3  | - 6.50000
 
  | 
14  | 2  | 0  | - 0.006302
 
  | 0  | 1  | - 2.10653
 
  | 3  | - 6.00000
 
  | 
15  | 2  | 0  | - 0.006302
 
  | 0  | 1  | - 2.10653
 
  | 3  | - 5.00000
 
  | 
16  | 2  | 0  | - 0.001931
 
  | 0  | 1  | - 2.10633
 
  | 3  | - 4.00000
 
  | 
17  | 2  | 0  | - 0.001931
 
  | 0  | 1  | - 2.10633
 
  | 3  | - 2.50000
 
  | 
18  | 2  | 0  | - 0.000076
 
  | 0  | 1  | - 2.09604
 
  | 3  | - 1.75000
 
  | 
19  | 2  | 0  | - 0.005171
 
  | 1  | 0  | - 2.14700
 
  | 3  | - 1.00000
 
  | 
20  | 2  | 0  | - 0.004562
 
  | 1  | 0  | - 2.12766
 
  | 3  | - 0.00000
 
  | 
This code gives me error
NOTE: IML Ready
NOTE: Closing WORK.COMPLETE_1
ERROR: (execution) Matrices do not conform to the operation.
operation : || at line 1966 column 139
operands  : obs, censored, time, Y, timeS, X, Sim, replicate
obs     10 rows      1 col     (numeric)
         1
         1
         1
         1
         1
         1
         1
         0
         1
         1
censored     10 rows      1 col     (numeric)
         0
         0
         0
         0
         0
         0
         0
         1
         0
         0
time     10 rows      1 col     (numeric)
0.0119728
0.0119728
0.0119728
0.0000702
0.0071248
0.0071248
0.0017914
0.0079639
0.0066853
0.0066853
y     10 rows      1 col     (numeric)
2.1234929
2.1234929
2.1234929
2.1003696
2.1255796
2.1255796
2.1055103
  2.176416
2.1040166
2.1040166
timeS     20 rows      1 col     (numeric)
X     10 rows      1 col     (numeric)
         0
         0
         0
         0
         0
         0
         1
         0
         0
         0
sim     10 rows      1 col     (numeric)
         1
         1
         1
         1
         1
         1
         1
         1
         1
         1
Replicate     10 rows      1 col     (numeric)
         1
         1
         1
         1
         1
         1
         1
         1
         1
         1