If you have a data set that was created in base SAS, and then you are loading it into a proc iml to be used with:
use dataset;
read all into matrix_name;
all the names of the variables of the data set get lost. Is there a way to avoid this and keep the variable names?
You've not specified the VAR clause on the READ statement, so you are getting the numeric variables. You can get the names of the variables by using this syntax:
use sashelp.class;
read all into m[c=varNames];
close sashelp.class;
print varNames;
For more details, see "Reading ALL variables INTO a matrix."
You've not specified the VAR clause on the READ statement, so you are getting the numeric variables. You can get the names of the variables by using this syntax:
use sashelp.class;
read all into m[c=varNames];
close sashelp.class;
print varNames;
For more details, see "Reading ALL variables INTO a matrix."
This works to preserve variable names, but not their labels. I use variable names with a numbered prefix (comp1 comp2 comp3...) with variable labels that identify each one. The numbered prefix allow reference to types of variable using the colon, eg comp:. I sometimes do operations through IML and would like to output datasets with the original variable names and labels. Can that be done?
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.