DATA Step, Macro, Functions and more

Retain table label

Reply
SAS Employee
Posts: 1

Retain table label

Is there a simple way to change this code so that the table label for the new &ds will be the same as for the old &ds, before the data step executed?

data &ds;

     set &ds;

     /* Additional processing */

run;

Super Contributor
Posts: 282

Re: Retain table label

Hi,

You could try storing the original label, then making use of it later, e.g.:

data class(label='Class subset');

  set sashelp.class;

  where name=:'J';

run;

%let ds=work.class;

proc sql noprint;

  select memlabel into :classlabel

  from dictionary.tables

  /*where libname='WORK'

    and memname=upcase("&ds")*/

  where cats(libname,'.',memname)=upcase("&ds")

  ;

quit;

data &ds(label="&classlabel");

  set &ds;

run;

If &ds is a one level data set name (i.e. no libname specified) then you can use the commented where clause instead, that is in the proc sql.

Regards,

Amir.

Valued Guide
Posts: 2,177

Re: Retain table label

to update the data set without losing the label, don't replace it like that.

Update it.

 

to update the descriptor portion (names, labels and formats) you have PROC DATASETS (see http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/a000247753.htm )

to update data values within the table you have 2 choices (I believe)

  1. data step statement MODIFY  http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/a000173361.htm
  2. update data with PROC SQL  http://support.sas.com/documentation/cdl/en/sqlproc/65065/HTML/default/n1hz0uhw57yye2n16m5r103jjpjj....
Ask a Question
Discussion stats
  • 2 replies
  • 526 views
  • 3 likes
  • 3 in conversation