Hi list! An operation that I often need is splicing two vectors:
> splice(1:3, 4:6) [1] 1 4 2 5 3 6 For numeric vectors I use this hack: splice <- function(x, y) { xy <- cbind(x, y) xy <- t(xy) dim(xy) <- length(x) * 2 return(xy) } So far, so good (?). But I also need splicing for factors and I tried this: splice <- function(x, y) { xy <- cbind(x, y) xy <- t(xy) dim(xy) <- length(x) * 2 if (is.factor(x) && is.factor(y)) { xy <- as.factor(xy) levels(xy) <- levels(x) } return(xy) } This, however, doesn't work because the level name to integer mapping gets mixed up when copying the levels from x to xy. My questions: 1.) How can this be fixed? 2.) What's the best way to do splicing of vectors and factors in R? (I couldn't find a prefdefined function for this although it seems to be such a basic and useful operation.) Thanks!! Titus ______________________________________________ R-help@r-project.org 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.