BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
ejohnson96
Calcite | Level 5

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?

1 ACCEPTED SOLUTION

Accepted Solutions
Rick_SAS
SAS Super FREQ

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."

View solution in original post

2 REPLIES 2
Rick_SAS
SAS Super FREQ

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."

billroy3
Calcite | Level 5

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?

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

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