hi i have a dataset which contains one variable date/
Variable - date
06/20/2010
06/16/2010
06/22/2010
06/20/2010
i want to replace the value of 06 ( month ) with 04 and 2010 ( year ) with 2011.
how can i achieve this?
If you only want to change certain dates, you could do it with something like:
data have;
informat date mmddyy10.;
format date mmddyy10.;
input date;
cards;
06/20/2010
06/16/2010
06/22/2010
06/20/2010
;
data want;
set have;
if month(date) eq 6 then date=
mdy(4,day(date),year(date));
if year(date) eq 2010 then date=
mdy(month(date),day(date),2011);
run;
I suppose your date is a valid sas date. This value is a number into your dataset.
the intnx function is the best way to increase or decrease your date values.
new_month = intnx('month',date,1); /* this adds one month to your date */
new_month2 = intnx('year',new_month,1); /* this adds one year to your date */
if it's text you can use substring and convert your date to a sas date using the mdy(month,day,year) function.
If you only want to change certain dates, you could do it with something like:
data have;
informat date mmddyy10.;
format date mmddyy10.;
input date;
cards;
06/20/2010
06/16/2010
06/22/2010
06/20/2010
;
data want;
set have;
if month(date) eq 6 then date=
mdy(4,day(date),year(date));
if year(date) eq 2010 then date=
mdy(month(date),day(date),2011);
run;
Hi Sir,
Thank you so much for your time. This is really useful to me.
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 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.