[R] cross tabulate variables by subject id
Michael Bedward
michael.bedward at gmail.com
Mon Nov 29 12:40:57 CET 2010
Hi Marianne,
How about this...
ac.ad <- unstack(dat1, choice ~ cond1:cond2)[, c("A.C", "A.D")]
acad.xtab <- with(ac.ad, table(A.C, A.D))
Michael
On 29 November 2010 20:18, Marianne Promberger
<marianne.promberger at kcl.ac.uk> wrote:
> Dear list,
>
> I have data like this:
>
> dat1 <- data.frame(subject=rep(1:10,2),
> cond1=rep(c("A","B"),each=5),
> cond2=rep(c("C","D"),each=10),
> choice=sample(0:1,10,replace=TRUE))
>
> I would like to compare subjects' "choice" for (cond1=="A" &
> cond2=="C") vs (cond1=="A" & cond2=="D"), using mcnemar.test
>
> The ?mcnemar.test example has the data in a matrix:
>
> Performance
> 2nd Survey
> 1st Survey Approve Disapprove
> Approve 794 150
> Disapprove 86 570
>
>
> So for my case, I need something like:
>
> Choice
> AC
> AD 0 1
> 0 ...
> 1
>
> Where "..." would be the sum of subjects who answered 0 or 1 to AC
> and/or AD respectively.
>
> I can get the first step by making an extra variable:
>
> dat1$condnew <- paste(dat1$cond1,dat1$cond2,sep="")
>
> although I am sure there are more elegant ways, and especially, I am
> stumped how to fill in the cells of the table.
>
> Thanks,
>
> Marianne
>
> --
> Marianne Promberger PhD, King's College London
> http://promberger.info
> R version 2.12.0 (2010-10-15)
> Ubuntu 9.04
>
> ______________________________________________
> R-help at 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.
>
More information about the R-help
mailing list