Hello everyone,
I am using a do loop to create a counter variable, count. However, the values that needs to be counted is not fully complete. How can I adjust the following code to include missing observations? I want to add a line that makes count=. if time=., and have no rows added if time=., but i couldn't get an if-then statement to work. Instead, the rows where time=. are removed from the dataset.
Thank you!
data dat2; set dat1; if time ge 0 then do count=1 to round(time, 1); output; end; run;
Try adding one more statement at the end of the DATA step:
else output;
Try adding one more statement at the end of the DATA step:
else output;
That worked! Thank you 🙂
data dat2;
set dat1;
if time=. then output;
else if time ge 0 then do
count=1 to round(time, 1);
output;
end;
run;
You could just make sure your upper bound is at least 1.
data dat2;
set dat1;
do count=1 to max(1,round(time, 1));
output;
end;
run;
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.