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:
>
Based on the other answers which use converting to character I'm using the following function to concatenate factors:
concat.factor <- function(...){ as.factor(do.call(c, lapply(list(...), as.character))) }
You can use this function just as you would use c.
c