Help using Base SAS procedures

How to create a bar graph?

Reply
Occasional Contributor
Posts: 5

How to create a bar graph?

I like to create a bar graph for these variables:

acta actb actc actd acte actf

These are types of activity from the survey and I like to graph each frequencies.

I tried following code but it didn't work. Can someone please help me fix this?

title "Question 1";

proc sgplot data=gopintern;

  vbar enta,entb,entc,entd,ente,entf / stat=freq;

  run;

Super User
Posts: 11,343

Re: How to create a bar graph?

VBAR wants a SINGLE variable for the Xaxis. To generate multiple bars, one for each of your original variables you would need to add a new variable to your data. Something like:

Data want;

     set have;

     Q1Group = 'enta'; Response=enta;output;

     Q1Group = 'entb'; Response=entb;output;

     Q1Group = 'entc'; Response=entc;output;

     Q1Group = 'entd'; Response=entd;output;

     Q1Group = 'ente'; Response=ente;output;

     Q1Group = 'entf'; Response=entf;output;

run;

Then the VBAR statement would look like using the new data set in the SGPLOT statement

vbar Q1group / stat=freq;

Occasional Contributor
Posts: 5

Re: How to create a bar graph?

I tried it, then bar graph shows all same frequency.

Here is code I used:

title "Question 1";

proc sgplot data=gopintern;

  vbar Q1Group / stat=freq;

  run;


Super User
Posts: 11,343

Re: How to create a bar graph?

Stat=Freq reports how many records have that value. You might need to provide some actual data examples.

BTW, it looks like you have some form of survey software that outputs each response category per question. If this is the case and the values are output as 0/1 for no/yes then use Response=Response and stat=sum OR use Freq=Response statement. If the response categories are values such as list position order we'll need to work on something else.

Ask a Question
Discussion stats
  • 3 replies
  • 208 views
  • 1 like
  • 2 in conversation