Hi
I am trying to merge datasets to see if there are missmatch in labels,There are multiple studies and would like to see labels for variable like in dataset C.First I tried to join 2 datasets and its overwritting label .Any suggestion please?
use a rename statement for the labels column in table b so that when you merge the data you have a column for the labels from a and b
something like this
data have;
set have(rename=(label=have_label));
run;
Something like this may help. DICTIONARY.COLUMNS is a special data source that SAS stores all the information describing all of the variables in all data sets in currently assigned libraries.
This assumes that all of your sets are in the same library which I indicated by 'YOURLIB' the name needs to be in uppercase and in quotes. Memname also should be in uppercase. If you have a large number of similar names you may be able to use the LIKE predicate with wildcards.
I couldn't tell what library you are using, I suspect that you actually want memname to be the name of other data sets like ADAE instead of the "sets" that you show in the picture.
The proc tabulate output will have the name of the variable as the left-most row label grouping all the values of label. The columns will be the data set name and a 1 will appear under dataset name that matches the variable name and label combination.
proc sql; create table labels as select memname, name, label from dictionary.columns where libname='YOURLIB' and memname in ('DATASETA' 'DATASETB' 'DATASETC' 'DATASETD') ; quit; proc tabulate data=labels; class memname name label; table name=''*label='', memname /misstext=' ' ; run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.