BookmarkSubscribeRSS Feed
psychopedia
Calcite | Level 5

   As question mentioned, I have several tables with product IDs variables from different time, a lot of which are in common. However, some of each contains ID that the others do not contain.

   I want to combine them vertically based on their time, but only take the common variables in all the tables. Is there a simple step I can do that instead of checking for missing data in the new table everytime I combine them? Thank you!

2 REPLIES 2
FreelanceReinh
Jade | Level 19

Hello @psychopedia,

 

Do you mean something like this?

/* Create test data */

data have1;
array x year a b c d e (2011 10:14);
run;

data have2;
array x year b c d e f g (2012 20:25);
run;

data have3;
array x year c d e f g h (2013 30:35);
run;

/* Combine tables vertically, restricted to common variables */

proc sql;
create table want as
select * from have1 union all corr
select * from have2 union all corr
select * from have3;
quit;

proc print data=want noobs;
run;

You may want to check the sort order in dataset WANT and possibly add an ORDER BY clause if you're not satisfied.

psychopedia
Calcite | Level 5

Thank you! This is what I m looking for. Really appreciate it.

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1119 views
  • 0 likes
  • 2 in conversation