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.
Thanks,
Tim.
---
"%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)
#analyse
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
______________________________________________
[email protected] 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.