Skip to content

Instantly share code, notes, and snippets.

@rblissett
Created May 2, 2019 02:55
Show Gist options
  • Save rblissett/c8346a6e7eba55cacf1b61014ec7e064 to your computer and use it in GitHub Desktop.
Save rblissett/c8346a6e7eba55cacf1b61014ec7e064 to your computer and use it in GitHub Desktop.
rcat <- function(n, labels=c(0, 1), pcts=NULL, seed=12345) {
set.seed(seed)
catvar <- rep(labels[1], n)
if(length(pcts)==0) {
interval <- n/length(labels)
start <- 1
for(i in 2:length(labels)) {
end <- start+interval
catvar[start:end] <- labels[i]
start <- end+1
}
} else {
if(sum(pcts)!=100) {
print("WARNING: PERCENTS NOT EQUAL TO 100")
}
start <- (pcts[1]/100*n)+1
for(i in 2:length(labels)) {
end <- start+(pcts[i]/100*n)
if(end>n) {
end <- n
}
catvar[start:end] <- labels[i]
start <- end+1
}
}
catvar <- sample(catvar)
return(catvar)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment