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;
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.
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)
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 use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.