I was surprised to see that R will coerce factors into a number when concatenating vectors. This happens even when the levels are the same. For example:
>
An alternate workaround is to convert the factor to be a character vector, then convert back when you are finshed concatenating.
cfacs <- as.character(facs) x <- c(cfacs[1:3], cfacs[4:5]) # Now choose between factor(x) # and factor(x, levels = levels(facs))