Re: [R] Compiling a contingency table of counts by case

From: Jacques VESLOT <jacques.veslot_at_good.ibl.fr>
Date: Fri 22 Sep 2006 - 09:32:14 GMT

 > dat <- read.delim("clipboard", sep=";")  > dat <- dat[order(dat$case, dat$name), ]

 > res <- apply(combinations(nlevels(dat$name), 2), 1, function(x) with(dat[dat$name %in% levels(dat$name)[x],], table(unlist(sapply(split(x, case), function(y) ifelse(length(y) == 2, paste(y, collapse=""), NA))))))

 > names(res) <- apply(combinations(nlevels(dat$name), 2), 1, function(x) paste(levels(dat$name)[x], collapse="."))

 > res
$Joe.John

11
  1

$Joe.Karl
character(0)

$Joe.Mike

10 11
  1 1

$Joe.Zoe

11
  2

$John.Karl
character(0)

$John.Mike

10
  1

$John.Zoe

11
  1

$Karl.Mike

01
  1

$Karl.Zoe

00
  1

$Mike.Zoe

01 10 11
  1 1 1



Jacques VESLOT

CNRS UMR 8090
I.B.L (2ème étage)
1 rue du Professeur Calmette
B.P. 245
59019 Lille Cedex

Tel : 33 (0)3.20.87.10.44
Fax : 33 (0)3.20.87.10.31

http://www-good.ibl.fr


Serguei Kaniovski a écrit :
> I have asked a similar question before but this time
> the problem is somewhat more involved. I have the
> following data:
>
> case;name;x
> 1;Joe;1
> 1;Mike;1
> 1;Zoe;1
> 2;Joe;1
> 2;Mike;0
> 2;Zoe;1
> 2;John;1
> 3;Mike;1
> 3;Zoe;0
> 3;Karl;0
>
> I would like to count the number of "case"
> in which any two "name"
>
> a. both have "x=1",
> b. the first has "x=0" - the second has "x=1",
> c. the first has "x=1" - the second has "x=0",
> d. both have "x=0",
>
> The difficulty is that the number of "names" and their
> identity changes from case to case.
>
> Thanks a lot for you help,
> Serguei Kaniovski



R-help@stat.math.ethz.ch 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. Received on Fri Sep 22 19:38:31 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Fri 22 Sep 2006 - 10:30:06 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.