[R] Barplots, was Re: (no subject)

peter dalgaard pdalgd at gmail.com
Fri Sep 10 12:06:13 CEST 2010


On Sep 10, 2010, at 11:38 , Tanvir Khan wrote:

> Hello,
> I'm trying to do bar plot where 'sex' will be the category axis and
> 'occupation' will represent the bars and the clusters will represent
> the mean 'income'.
> 
>   sex     occupation   income
> 1  female          j             12
> 2    male          b            34
> 3    male          j             22
> 4  female          j            54
> 5    male          b           33
> 6  female          b           67
> 7    male          j            89
> 8    male          b          65
> 9  female          j          45
> 10   male          j          32
> 
> I can do bar plot where sex is the category axis and the clusters
> represent 'occupation'.
> the code is-
> 
>> t<- table(data$sex,data$occupation)
>> barplot(f)
> 
> and the barplot where the category axis is 'sex' and the cluster
> represent the mean income and median income. The code is -
>> mean=tapply(data$income,data$sex,mean)
>> mean
>  female     male
> 38.66667 46.50000
>> median=tapply(data$income,data$sex,median)
>> median
> female   male
>  22.5   49.5
>> r=rbind(mean,median)
>> r
>               female     male
> mean    38.66667     46.5
> median 22.50000    49.5
>> par(fg='red',cex=1.2)
>> barplot(r,col=c('green','yellow'),cex.axis=1.2,col.axis='red',ylim=c(0,120)
> 
> But how can I make 'occupation'' to nest inside 'sex' and then the
> cluster to represent the mean income?
> For example I am attaching a pdf plot that is produced by SPSS.


(Please use sensible Subject:, those of us with threading mail programs see it mixed in with oodles of old and irrelevant posts.)

I think you are just looking for some of this

inc.by.sex.occ <- with(data, tapply(income, list(sex,occupation), mean))
barplot(inc.by.sex.occ)
barplot(inc.by.sex.occ, beside=T)
barplot(t(inc.by.sex.occ))
barplot(t(inc.by.sex.occ),beside=T)

(or, of course, reverse the order in the list() rather than transpose the result)




-- 
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-help mailing list