DATA Step, Macro, Functions and more

Store variable names and labels in data set and assign labels automatically?

Reply
Occasional Contributor
Posts: 16

Store variable names and labels in data set and assign labels automatically?

Hello,

I have a very large data set with many variables with different names and labels (more than 300 hundred of them), I also have a excel file with variable names and descriptions (which I want use as labels). I'm able to import these into new sas data set (let's call it label data set), so I have sas data set with variable names and their labels. How could I code a macro which would use this label data set to assign labels for variables in my large data set?

Thanks Smiley Happy

Super User
Posts: 17,784

Re: Store variable names and labels in data set and assign labels automatically?

Create a macro variable using proc sql that is of the form

Variable_Name1 = "Variable Label1"

Variable_Name2 = "Variable Label2"

Here's an example:

*Create label data set;

data label_data_set;

length name label $25.;

name="Sex"; label="Gender"; output;

name="height"; label="Height (in)"; output;

name="weight"; label="Weight (lbs)"; output;

run;

*Create sample dataset to apply label;

data class;

set sashelp.class;

run;

*Create macro variable that holds label statement;

proc sql noprint;

select catx("=", name, quote(trim(label)))

  into :label_list separated by " "

from label_data_set;

quit;

*Display macro variable in log;

%put &label_list.;

*Apply labels without recreating dataset;

proc datasets library=work;

modify class;

label &label_list.;

run;quit;

*Print the dataset to display new labels;

proc print data=class label noobs;

run;

Occasional Contributor
Posts: 16

Re: Store variable names and labels in data set and assign labels automatically?

Thank you very much!!! It worked Smiley Happy

Super User
Posts: 9,671

Re: Store variable names and labels in data set and assign labels automatically?

if you encounter the limitation of Macro variable's Length , consider using CALL EXECUTE () .

Regular Contributor
Posts: 234

Re: Store variable names and labels in data set and assign labels automatically?

@Ksharp Would  you mind showing it using  CALL EXECUTE?

Super User
Posts: 9,671

Re: Store variable names and labels in data set and assign labels automatically?

OK. Here is my example . written by me,Matt and Arthur.T.

 

http://support.sas.com/resources/papers/proceedings15/2785-2015.pdf

Ask a Question
Discussion stats
  • 5 replies
  • 1274 views
  • 3 likes
  • 4 in conversation