Hi Jorge,
> apply(mydata[,-1], 2, tapply, mydata[,1], function(x) sum(x)/nrow(mydata)) will calculate the total percentages of "yes" for each sex relative to the total size, not within sex.

with your data construction, the following should work

#count "yes" for each sex and question
cnts<-aggregate(mydata[,-1],by=list(mydata[,1]),FUN=sum)
#count gender as denumerators
nums<-table(mydata[,1])
cbind(sex=cnts[,1],cnts[,-1]/nums)

#simple check that the solution is ok
prop.table(table(sex=mydata[,"sex"],q1=mydata[,"q1"]),1)
prop.table(table(sex=mydata[,"sex"],q2=mydata[,"q2"]),1)




Jorge Ivan Velez schrieb:

Dear Donald,
Assuming that your data is called "mydata", the first column represents the
gender and the questions are the columns left, something like the following
should do the job:

# Some data
set.seed(1)
mydata <- matrix(rbinom(1000,1,p=0.5),ncol=10)
colnames(mydata)<-c('sex',paste('q',1:9,sep=""))

# What you asked -- hopefully   ;)
apply(mydata[,-1], 2, tapply, mydata[,1], function(x) sum(x)/nrow(mydata))

HTH,

Jorge


On Tue, Apr 7, 2009 at 4:33 PM, Donald Braman <dbra...@law.gwu.edu> wrote:

I've been playing around with various table tools, trying to construct a
fairly simple cross-tab.  It shouldn't be hard, but for some reason it
turning out to be (for me).

If I want to see how many men and how many women agree with a
agree/disagree
question (coded 1,0), I can do this:

attach(mydata)
mytable <- table(male, q1.bin) # gender and a binary response variable
prop.table(mytable, 1) # row percentages
    q1.bin
male      0      1
  0 0.3988 0.6012
  1 0.2879 0.7121

I can repeat that for each of the items I want gender breakdowns for (q2,
q3, q4 ....).   But what I really want is a table that shows the percentage
answering yes (coded as 1) across many, many binary response items.  E.g.,


male q1.bin q2.bin q3.bin ...
  0 0.6012 0.3421 0.9871 ...
  1 0.7121 0.6223 0.0198 ...

I've tried various combinations of apply & cbind, but to no avail. It would
be easy in SPSS crosstabs, but darnit, I want to use R!

       [[alternative HTML version deleted]]

______________________________________________
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.


        [[alternative HTML version deleted]]

______________________________________________
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.


______________________________________________
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