I want to repeat the entore row in a SAS data set based on the following condition :
I have attached the screen shot on how the raw data looks like and what I need as output for Reg_number : 8765432:
Data I have:
Data I want
I tried using repeat function and SQL, however I was not fully successful, Appreciate your quick help on this.
Use a Data step with an explicit OUTPUT statement. Make sure to include an else output so that other records are also displayed.
If <condition> then do;
Do base_fund= 'add_silver' , 'add_bronze', ... 'Add_awesome';
Output;
End;
End;
Else output;
If by "repeat" you mean to duplicate a row with changes then the code should be:
Data want;
set have;
output; /* save original row */
if <condition> then do;
<do your changes>
output; /* with the changed data */
end;
run;
Data want; set have;
Output;
If duration le 4 then do;
Basefund=’add_silver’; output’
Basefund=’silver’; output’
Basefund=’add_gold’; output’
Basefund=’bronze’; output’
End;
JIm
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.