fstpackage / synthetic
1
#  syntheticbench - R package for benchmarking of dataset serialization
2
#
3
#  Copyright (C) 2019-present, Mark AJ Klik
4
#
5
#  This file is part of the lazyvec R package.
6
#
7
#  The lazyvec R package is free software: you can redistribute it and/or modify it
8
#  under the terms of the GNU Affero General Public License version 3 as
9
#  published by the Free Software Foundation.
10
#
11
#  The lazyvec R package is distributed in the hope that it will be useful, but
12
#  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
#  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
14
#  for more details.
15
#
16
#  You should have received a copy of the GNU Affero General Public License along
17
#  with the lazyvec R package. If not, see <http://www.gnu.org/licenses/>.
18
#
19
#  You can contact the author at:
20
#  - syntheticbench R package source repository : https://github.com/fstpackage/syntheticbench
21

22

23
#' Generate a integer vector with certain distribution
24
#'
25
#' @param length length of the vector
26
#' @param max_distict_values maximum number of disctict values in the vector
27
#' @param min_value minimum value in the vector
28
#' @param max_value maximum value in the vector
29
#'
30
#' @return integer vector
31
#' @export
32
sample_integer <- function(length, min_value = 1 - .Machine$integer.max, max_value = .Machine$integer.max,
33
  max_distict_values = NULL) {
34

35 2
  if (is.null(max_distict_values)) {
36 2
    return(sample(min_value : max_value, length, replace = TRUE))
37
  }
38

39 0
  x <- sample(min_value : max_value, max_distict_values)  # unique values
40 0
  sample(x, length, replace = TRUE)
41
}

Read our documentation on viewing source code .

Loading