hi ,
i am working with large data base , but i am providing the sample one.
DATA TAXSAVERS;
INPUT AMOUNT LOAD;
DATALINES;
2779 50
16050 50
18000 45
17000 65
2566 20
;
RUN;
I need the REQUITED DATABASE as follows
1) The first step is "load should be deducted " i.e 2779-50=2729
2) The gross or final TAXSAVER amount should be multiple of 500...i.e 2729 ...would be 2500.
shall i use the MOD function for the second step.
please help ....is there any PROC in SAS ...if not go ahead with PROC SQL...
DATA TAXSAVERS;
INPUT AMOUNT LOAD;
nett = sum(amount, -load) ;
taxsaver = round(nett - 250, 500) ;
DATALINES;
2779 50
16050 50
18000 45
17000 65
2566 20
;
RUN;
The sum function will calculate the nett amount and return only the original amount if you have null (missing) values for load.
The round function will calculate to the nearest multiple of, in this case, 500; to get the highest value less than or equal to the given amount take 250 off first.
Richard
thanks richard good work...
is there any way to do in PROC SQL...?
Something like below?
DATA TAXSAVERS;
INPUT AMOUNT LOAD;
DATALINES;
2779 50
16050 50
18000 45
17000 65
2566 20
;
RUN;
proc sql;
create table want as
select round(amount-load,500) as taxsaver
from taxsavers
;
quit;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.