I have a matrix (let's call it D) with 20 rows (+ column name) and 2 columns. The matrix has been sorted in a particular way, and I want to read the first of every 4 values in the the first column to another matrix. The following code worked on a small "test" dataset (small enough that I could check the results manually), but is there a reason it could produce wrong results (for example, read a number twice from a particular set of four, but zero times from another set)?
proc iml;
use sasdata.testnum;
read all var _ALL_ into D[colname = varNames];
close sasdata.testnum;
print D;
T = j(5, 1, 0);
t_row = 1;
do y = 1 to 21 by 4;
T[t_row, 1] = D[y, 1];
t_row = t_row + 1;
print T;
end;
In other words, does anyone see anything wrong with this code? Is there a better way of doing what I have done here?