Hi, I am trying to repeat the same value for all similar dates.
My data looks like this, where first column is month and year and second column is a percentage:
month-year monthly-com
03M2015 0.57
03M2015
03M2015
04M2015 0.63
04M2015
05M2015 0.73
05M2015
05M2015
The values of second column should be repeated for all similar month-year. I tried the below code but it does not work. Anybody can help? Thanks!
data outputData (drop=temp_Monthly_com temp_month_year);
set have;
retain temp_Monthly_com . temp_month_year .;
if temp_month_year ne month_year then do;
temp_month_year = month_year;
format temp_month_year MMYY.;
temp_Monthly_com = .;
end;
if Monthly_com = . then temp_Monthly_com=Monthly_com;
else temp_Monthly_com = Monthly_com;
run;
data want;
set have;
retain monthly_com_filled;
if not missing(monthly_com) then monthly_com_filled = monthly_com;
run;
Replace Old with your old variable name and new with your new variable name.
data have;
infile cards truncover;
input month_year $ monthly_com;
cards;
03M2015 0.57
03M2015
03M2015
04M2015 0.63
04M2015
05M2015 0.73
05M2015
05M2015
;
data want;
update have(obs=0) have;
by month_year;
output;
run;
Thanks for quick reply. I run your code but still the same problem.
data want;
set have;
retain monthly_com_filled;
if not missing(monthly_com) then monthly_com_filled = monthly_com;
run;
Replace Old with your old variable name and new with your new variable name.
Thanks a lot!
Not sure where is the discrepancy unless you post the log and the result you are getting. Here is my test and results
data have;
infile cards truncover;
input month_year $ monthly_com;
cards;
03M2015 0.57
03M2015
03M2015
04M2015 0.63
04M2015
05M2015 0.73
05M2015
05M2015
;
data want;
update have(obs=0) have;
by month_year;
output;
run;
proc print noobs;run;
month_year | monthly_com |
---|---|
03M2015 | 0.57 |
03M2015 | 0.57 |
03M2015 | 0.57 |
04M2015 | 0.63 |
04M2015 | 0.63 |
05M2015 | 0.73 |
05M2015 | 0.73 |
05M2015 | 0.73 |
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.