I know there's a way to do this but I cannot remember what the option is called and am also having trouble looking it up.
I essentially want to stack multiple datasets and have a column created with their names in it so I can keep track of which data belongs to which dataset.
data have1;
var1 = 'A'; var2= 'BC'; var3= 1;
data have2;
var1 = 'D'; var2= 'EF'; var3= 2;
data have;
set have1 have2;
run;
data want;
input dsn $ var1 $ var2 $ var3 @@;
cards;
have1 A BC 1
have2 D EF 2
;
run;
Use the INDSNAME (Input DataSet Name) option
data have; length source src $40.; set have1 have2 indsname = source; src=source; run;
Use the INDSNAME (Input DataSet Name) option
data have; length source src $40.; set have1 have2 indsname = source; src=source; run;
Check out Where did it come from? Adding the source of each observation to a SAS data set by Rick Wicklin.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.