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;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.
Ready to level-up your skills? Choose your own adventure.