I've got data like the following:
year _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 total _1ind _2ind _3ind _4ind _5ind ... _12ind
2016 5 4 7 2 3 1 3 7 1 3 5 3 44 1 1 1 1 1 1
2017 8 6 4 4 2 3 1 6 3 2 2 2 43 1 1 1 0 0 0
2018 9 7 3 3 4 2 2 2 2 1 3 1 39 0 0 0 0 0 0
I need a proc report with the data from the first 14 columns and i need to color the cells of columns _1 to _12 based on the 1/0 indicators _1ind to _12ind.
And I need a blank column between _12 and total
the 12 columns are months and the coloring is just to differentiate actuals vs predicted, so I could also ignore the 1/0 indicators and just look at something like if year<year(today()) then grey, else if year>year(today()) then pink, and then if year=year(today()) then use the month to set the color.
This is my first time coding proc report but here's what I've gotten so far:
proc report data=_table;
column year _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 total color;
define year/display;
define _1/display;
define _2/display;
define _3/display;
define _4/display;
define _5/display;
define _6/display;
define _7/display;
define _8/display;
define _9/display;
define _10/display;
define _11/display;
define _12/display;
define total/display;
define color/computed noprint;
compute color;
if _1ind=0 then do;
call define('_1','style','style={background=pink}');
end;
if _2ind=0 then do;
call define('_2','style','style={background=pink}');
end;
if _3ind=0 then do;
call define('_3','style','style={background=pink}');
end;
if _4ind=0 then do;
call define('_4','style','style={background=pink}');
end;
if _5ind=0 then do;
call define('_5','style','style={background=pink}');
end;
if _6ind=0 then do;
call define('_6','style','style={background=pink}');
end;
if _7ind=0 then do;
call define('_7','style','style={background=pink}');
end;
if _8ind=0 then do;
call define('_8','style','style={background=pink}');
end;
if _9ind=0 then do;
call define('_9','style','style={background=pink}');
end;
if _10ind=0 then do;
call define('_10','style','style={background=pink}');
end;
if _11ind=0 then do;
call define('_11','style','style={background=pink}');
end;
if _12ind=0 then do;
call define('_12','style','style={background=pink}');
end;
endcomp;
run;
I get messages in the log that _1ind to _12ind are uninitialized which I don't understand, they exist on my data set _table.
proc print data=_table;
var _1ind _2ind _3ind _4ind _5ind _6ind _7ind _8ind _9ind _10ind _11ind _12ind;
run;
runs just fine.
And how do I get a blank column in there betweenn _12 and total?
... View more