Hi,
I am trying to sum across variables, but only if a separate variable is greater than a certain value. Here's an example:
ID | day1 | day2 | day3 | dollar1 | dollar2 | dollar3 | magicday |
1 | 0 | 10 | 12 | 1 | 2 | 3 | 4 |
2 | 0 | 1 | 5 | 1 | 2 | 3 | 2 |
For any of the days (day1-day3) that are greater than the magicday, I want to sum their corresponding dollar values. For example, for person 1, since their magicday is 4, I want to add the dollar
values from day2 and day3 and get a total sum of $5, and ignore the dollars from day 1. For person 2, I want only the dollar value from day3, $3.
I actually have over 400 days to deal with, so doing this manually isn't really an option.
Thanks so much!
Laurie
Use a do loop and arrays.
data want;
set have;
array day(100) day1-day100;
array dollar(100) dolalr1-dollar100;
dollar_total=0;
do i=1 to 100;
if day(i)>magicday then dollar_total+dollar(i);
end;
run;
Use a do loop and arrays.
data want;
set have;
array day(100) day1-day100;
array dollar(100) dolalr1-dollar100;
dollar_total=0;
do i=1 to 100;
if day(i)>magicday then dollar_total+dollar(i);
end;
run;
Perfect, thanks!
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.