Help using Base SAS procedures

How to merge several dataset by row

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 5
Accepted Solution

How to merge several dataset by row

I need to put observations in five dataset into one dataset. I usually use macro and loop, each time with data step setting two dataset. I think this way is not efficient. Does anyone have a better solution to merge five dataset in one piece of code? The variables sometime do not have the same name. But they are the same thing. It is basically just putting observations in different dataset into the same dataset. Thanks!


Accepted Solutions
Solution
‎12-04-2017 12:35 AM
Esteemed Advisor
Posts: 5,543

Re: How to merge several dataset by row

[ Edited ]

If by merge you mean concatenate then use rename to get uniform names and simply list the datasets in a set statement:

 

data all;
set
    dset1 (rename=(oldvar1=newvar))
    dset2 (rename=(oldvar2=newvar))
    dset3 (rename=(oldvar3=newvar))
    dset4 (rename=(oldvar4=newvar))
    dset5 (rename=(oldvar5=newvar));
run;
    

 

PG

View solution in original post


All Replies
Solution
‎12-04-2017 12:35 AM
Esteemed Advisor
Posts: 5,543

Re: How to merge several dataset by row

[ Edited ]

If by merge you mean concatenate then use rename to get uniform names and simply list the datasets in a set statement:

 

data all;
set
    dset1 (rename=(oldvar1=newvar))
    dset2 (rename=(oldvar2=newvar))
    dset3 (rename=(oldvar3=newvar))
    dset4 (rename=(oldvar4=newvar))
    dset5 (rename=(oldvar5=newvar));
run;
    

 

PG
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 159 views
  • 1 like
  • 2 in conversation