R/internal_synthesize_sample_categorical.R

Defines functions sample.categorical

# // Sampling for categorical data

sample.categorical <- function(n = nrow(probs), k = ncol(probs), probs) {

  u <- runif(n)

  if (k == 2L) {

    y <- u > probs[, 1]

  } else {

    y <- cp <- numeric(n)

    for (j in 1L:(k-1L)) {
      cp <- cp + probs[, j]
      y[u > cp] <- j
    }

  }
    
  return(y + 1L)

}
simongrund1/robosynth documentation built on March 20, 2022, 6:15 p.m.