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)
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.