My challenge was to generate random codes of variable length and size. The codes should be all unique and build of alphanumeric symbols. I wrote the following function using the build-in function sample():
alpha.rnd <- function(length, size) { if(size > 36^length) stop("\n size cannot be greater than 36^length") b <- NULL repeat { a <- NULL for (i in 1:length) { a <- paste0(sample(c(letters, 0:9), size, replace = TRUE), a) } b <- c(a,b) if(sum(duplicated(b)) == 0) break size = sum(duplicated(b)) b <- b[!duplicated(b)] } return(b) }
Example:
> set.seed(77) > alpha.rnd(3,5) [1] "5qk" "94z" "f45" "au8" "qq0"
Enjoy!