Data visualization with SAS programming

sgplot vbar data label of sum

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 96
Accepted Solution

sgplot vbar data label of sum

I am running an sgplot vbar where the stat is the mean and I would like to label each vbar with the sample size in each group. is there a way I can do this, something like datalabel=(stat=sum) [but this does not work].


Accepted Solutions
Solution
‎10-27-2017 05:13 PM
SAS Super FREQ
Posts: 945

Re: sgplot vbar data label of sum

I was talking with Sanjay about this one, and he pointed out that another alternative would be to just pre-compute the data in PROC MEANS and use a VBARPARM to render it. Here's what that would look like:

 

proc means data=sashelp.class nway;
class age;
var weight;
output out=temp mean=weight_mean n=weight_n;
run;

proc sgplot data=temp;
vbarparm category=age response=weight_mean / datalabel=weight_n;
run;

 

View solution in original post


All Replies
SAS Super FREQ
Posts: 945

Re: sgplot vbar data label of sum

How about something like this?

 

proc sgplot data=sashelp.class;
vbar age / response=weight stat=mean;
xaxistable weight / stat=freq location=inside
                    position=top;
run;
Frequent Contributor
Posts: 96

Re: sgplot vbar data label of sum

[ Edited ]

I am formatting the response variable as a percent since it is a binary variable, and I want the proportion of 1s (vs 0s). I want the total sample size in each group to be displayed per bar (num of 0s + 1s).

 

Because of this format I think, when I run with your suggestions it is giving me percentages rather than counts. Am I able to employ 2 different formats for the same variable within a proc block?

 

proc sgplot data=dat;
    vbar days / response=mort stat=mean;
    format mort percent6.2;
run;

SAS Super FREQ
Posts: 945

Re: sgplot vbar data label of sum

What version of SAS are you using?

Frequent Contributor
Posts: 96

Re: sgplot vbar data label of sum

SAS 9.4

Solution
‎10-27-2017 05:13 PM
SAS Super FREQ
Posts: 945

Re: sgplot vbar data label of sum

I was talking with Sanjay about this one, and he pointed out that another alternative would be to just pre-compute the data in PROC MEANS and use a VBARPARM to render it. Here's what that would look like:

 

proc means data=sashelp.class nway;
class age;
var weight;
output out=temp mean=weight_mean n=weight_n;
run;

proc sgplot data=temp;
vbarparm category=age response=weight_mean / datalabel=weight_n;
run;

 

Frequent Contributor
Posts: 96

Re: sgplot vbar data label of sum

Worked beautifully - much appreciated.

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 6 replies
  • 265 views
  • 1 like
  • 2 in conversation