11-27-2017 02:58 AM - last edited on 11-27-2017 04:03 AM by RW9
I have a datasets 3000 lets say test0001 to test3000 and the variable names are same in all the datasets. I want to append all 3000 files in to one file.
Please suggest me any short simple way to do this task.
11-27-2017 03:56 AM
proc append can only handle one dataset to append.
But you can use a datastep with wildcards:
data basetest; input x; cards; 1 ; run; data add0001; input x; cards; 2 ; run; data add0002; input x; cards; 3 ; run; data basetest; set basetest add: ; run;
11-27-2017 04:02 AM
First off, don't write all in upper case - I will change the subject.
Secondly why do you have 3000 datasets all the same, sounds like your running some procedure over data and outputting to separate datasets - this is not an efficient methodology and then leads to questions like yours. Look up by group processing. In your original data create a grouping variable, then do your procedure with the by group - it is faster, less coding, less disk space, and simpler to work with. E.g. I want to do means on all groups of age 1-10, 11-20, 20+
data inter; set have; length group $20; if 1 <= age <= 10 then group="Group 1"; else if 11 <= age <= 20 then group="Group 2"; else group="Group 3"; run; proc means data=inter; by group; /* key line */ var weight; output out=want n=n mean=mean; run;
This will process one dataset, by the given group, and produce one dataset with all the output needed.
If you have another point, please give full details.