[R] test for nested factors

From: Tim Bergsma <timb_at_metrumrg.com>
Date: Mon, 04 Jun 2007 08:50:07 -0400

Is there a conventional way to test for nested factors? I.e., if 'a' and 'b' are lists of same-length factors, does each level specified by 'a' correspond to exactly one level specified by 'b'?

The function below seems to suffice, but I'd be happy to know of a more succinct solution, if it already exists.




"%nested.in%" <- function(x,f,...){

#coerce to list
if(!is.list(x))x<-list(x) if(!is.list(f))f<-list(f)
#collapse to vector
x <- tapply(x[[1]],x) f <- tapply(f[[1]],f)
return(all(sapply(lapply(split(f,x),unique),length)==1)) } CO2$Plant %nested.in% CO2[,c("Type","Treatment")] #TRUE CO2$Plant %nested.in% (CO2$uptake < mean(CO2$uptake)) #FALSE ______________________________________________ R-help_at_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 Mon 04 Jun 2007 - 12:57:21 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 05 Jun 2007 - 14:31:32 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.