Having a matrix X with say 100 rows and 10 columns I want to subset the matrix X2 by selecting rows 1 to 5 and rows 20 to 30.
PROC IML; X=J(100,10,.); CALL RANUNI(12345,X); X2=X[1:5,]; /*WORKS*/ X2=X[{1:5 20:30},]; /*DOES NOT WORKS*/
you need to concatenate the two ranges together using '||'
X2=X[(1:5)||(20:30),];
View solution in original post
Thanks @IanWakeling. I was behind the || operator but I haven't used it correctly in terms of the brackets.
For more on extracting submatrices, see "Extracting elements from a matrix: rows, columns, submatrices, and indices"
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Latest Updates