/* This is example of age caluculate wihtout to display
perfect days and years in output window */
data age;
retain dob "12jun2003"d now "24may2011"d;
age1=now-dob;
age=(now-dob)/365.25;
years=int(age);
days1=round((age-years)*365.25);
months=month(now)-1;
if days1 gt 30 and months in(12,10,8,6,4,2)then do;
month1=days1/30.4375;
month=int(days1/30.4375);
if day(now)=1 then days=1;
else days=round((month1-month)*30.4375)+1;
drop days1 month1 month;
end;
else if days1 gt 30 and months in
(1,3,5,7,9,11)then do;
month1=days1/30.4375;
month=int(days1/30.4375);
if day(now)=1 then days=1;
else days=round((month1-month)
*30.4375);
drop days1 month1 month;
end;
drop age age1;
proc print data=age;
format dob now date.;
run;
Answer / muralavenu
Year and Day is fine. but Month is calculating from
current month onwords(i.e. ending to starting instead of
starting to ending). How to get rid of this problem. Plz
find out.
| Is This Answer Correct ? | 0 Yes | 0 No |
How are numeric and character missing values represented internally?
What is the good sas programming practices for processing large data sets?
How can you limit the variables written to output dataset in data step?
% let A=3+4 what is result
What is the difference between verification and validation?
I have 2 data sets A & B. Both have a variable called Age in them, each of them specifying a different functionality. In my program I use bot these data sets. How do I specify which Age variable I want to use?
WHAT IS LAG FUNCTION ? WHERE CAN YOU IMPLEMENT THIS FUNCTION?
What are the difference between sas functions and procedures?
How to create list output for cross-tabulations in proc freq?
How would you delete duplicate observations?
How would you code a merge that will write the matches of both to one data set, the non-matches from the left-most data set to a second data set, and the non-matches of the right-most data set to a third data set.
How would you define the end of a macro? : sas-macro