BookmarkSubscribeRSS Feed
Seashore
Calcite | Level 5

for example:

Dataset a:

month

1

2

3

4

...

12

dataset b:

col1-col300

then I would like to merge these to as :

if month=1, merge col1-10 in b with a(month=1)

if month=2. merge col2-11 in b with b(month=2)

....

Thank you!

1 REPLY 1
RW9
Diamond | Level 26 RW9
Diamond | Level 26

What do you want the output to look like?  Also is it really any saving, just merge the two tables.  I.e.

proc transpose data=datasetb out=t_datasetb;

     var col1-col300;

...

proc sql;

     create table WANT as

     select     A.*,

                    B.VAL

     from       DATASET A

     left join  T_DATASETB B

     on          A.MONTH <= B.COL <= (A.MONTH + 9);

quit;

Then you can always transpose up.  Note that I guessed as the variable names as you haven't provided any test data in a datastep format, I have only written the code from memory.

sas-innovate-white.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.

Register now!

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
  • 1 reply
  • 911 views
  • 0 likes
  • 2 in conversation