On 02/01/2012 08:13 AM, Rebecca Lisi wrote:
I am having trouble generating a graph.

I want to know the % of respondents who answered that they "strongly
agree" or "agree" the "America owes R's ethnic group a better chance"
(BTTRCHNC) and I want to organize it by racial group (RACESHRT).

"BTTRCHNC" is organized ordinally from 1 through 5 with 1=Strongly
Agree, 5=Strongly Disagree
"RACESHRT" is ordinally organized from 1 through 5 where each number
represents a racial group category, i.e. white, black, Asian, etc.

Any hints for how to proceed?

Hi Rebecca,
Let's say you have 100 respondents who are members of five racial groups:

r_ethnic<-data.frame(BTTRCHNC=sample(1:5,100,TRUE),
 RACESHRT=sample(LETTERS[1:5],100,TRUE))
library(prettyR)
r_ethnic.xtab<-xtab(BTTRCHNC~RACESHRT,r_ethnic)
Crosstabulation of BTTRCHNC by RACESHRT
        RACESHRT
...     A       B       C       D       E
1       4       3       4       6       5       22
        18.18   13.64   18.18   27.27   22.73    -
        22.22   13.04   21.05   28.57   26.32   22

2       3       3       3       1       3       13
        23.08   23.08   23.08   7.69    23.08    -
        16.67   13.04   15.79   4.76    15.79   13

3       5       10      5       7       3       30
        16.67   33.33   16.67   23.33   10       -
        27.78   43.48   26.32   33.33   15.79   30

4       3       3       1       2       5       14
        21.43   21.43   7.14    14.29   35.71    -
        16.67   13.04   5.26    9.52    26.32   14

5       3       4       6       5       3       21
        14.29   19.05   28.57   23.81   14.29    -
        16.67   17.39   31.58   23.81   15.79   21

        18      23      19      21      19       100
        18      23      19      21      19       100

One way to illustrate this is to display a grouped bar plot of the percentages. First we'll have to recalculate the percentages:

r_ethnic.pct<-r_ethnic.xtab$counts
for(col in 1:dim(r_ethnic.xtab$counts)[2])
 r_ethnic.pct[,col]<-
  100*r_ethnic.xtab$counts[,col]/r_ethnic.xtab$col.margin[col]

Then use the resulting matrix to display the plot:

library(plotrix)
barp(r_ethnic.pct,names.arg=names(r_ethnic.xtab$col.margin),ylab="Percent",
 main="Percentages of options chosen by racial group",xlab="Racial group",
 col=c("#dddd00","#aadd44","#88dd88","#44ddaa","#00dddd"))
legend(3.5,44.5,
 c("Strongly agree","Agree","Neutral","Disagree","Strongly disagree"),
 fill=c("#dddd00","#aadd44","#88dd88","#44ddaa","#00dddd"))

You should get something like the attached PDF. There are other ways.

Jim

Attachment: r_ethnic.pdf
Description: Adobe PDF document

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to