On 6/4/07, Tim Bergsma <[EMAIL PROTECTED]> wrote: > 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.
How about: "%nested%" <- function(a, b) { if (is.list(a)) a <- do.call("interaction", c(a, drop=TRUE)) if (is.list(b)) b <- do.call("interaction", c(b, drop=TRUE)) length(unique(a)) == length(unique(interaction(a, b, drop=TRUE))) } CO2$Plant %nested% CO2[,c("Type","Treatment")] #TRUE CO2$Plant %nested% (CO2$uptake < mean(CO2$uptake)) #FALSE ? Hadley ______________________________________________ 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.