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?

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

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