Hi,
Try relevel (a slightly more general version of stats::relevel),
relevel =
function (x, ref, ...)
{
lev <- levels(x)
if (is.character(ref))
ref <- match(ref, lev)
if (any(
is.na(ref)))
stop("'ref' must be an existing level")
nlev <- length(lev)
if (any(ref < 1 | ref > nlev))
stop(gettextf("ref = %d must be in 1:%d", ref, nlev),
domain = NA)
factor(x, levels = lev[c(ref, seq_along(lev)[-ref])])
}
levels(d$population)
my.order <- c("YXPy01", "KMPy01", "YLPy01", "GSPy02",
"BCPy01", "LJPy01", "GYPt01", "YLPd01", "CYPd01", "CYPd02", "CYPd03",
"BXPd01", "NSPt01")
d$population <- relevel(d$population, my.order)
levels(d$population)
HTH,
baptiste
--
_____________________________
Baptiste Auguié
School of Physics
University of Exeter
Stocker Road,
Exeter, Devon,
EX4 4QL, UK
http://newton.ex.ac.uk/research/emag
______________________________