R/SimFriedman1.R

Defines functions SimFriedman1

Documented in SimFriedman1

#' @title Friedman 1
#' @description Simulate from the 'Friedman #1' regression problem.
#' @param N Number of data points to simulate. Positive integer.
#' @param nFeatures Number of features, must be at least 5. Positive ingter.
#' @param sigma Noise level for Gaussian noise. Must be postive.   
#' @param seed seed for RNG (default = NULL).
#' @return list(x = x, y = y)
#' @export
#' @examples
#' N = 100
#' nFeatures = 10
#' sigma = 0.1
#' SimFriedman1(N, nFeatures, sigma)
SimFriedman1 = function(N, nFeatures, sigma, seed = NULL){
  if(!is.null(seed)){
    .checkSeed(seed)
    set.seed(seed)
  }
  if(!(is.numeric(N) & is.numeric(nFeatures) & is.numeric(sigma))){
    stop("N, nfeatures and sigma must be numeric.")
  }
  if(sigma <= 0){
    stop("Sigma must be positive.")
  }
  if(nFeatures <5){
    stop("nFeatures must be >= 5.")
  }
  N_ = floor(N)
  nFeatures_ = floor(nFeatures)
  if(!(N_ == N & nFeatures_ == nFeatures)){
    stop("N and nFeatures must be positive integers.")
  }
  result = SimFriedman1C(N_, nFeatures_, sigma)
  return(list(x = result$X, y = result$Y))
}
feji3769/simplesim documentation built on Dec. 12, 2020, 10:16 a.m.