Рассматривая случай кубов, runif
идеально подходит для достижения всего этого.В частности, мы можем указать количество точек, которые должны быть сгенерированы, и для каждой оси мы также можем указать другой диапазон.Например,
lower <- c(0, 10, 20)
upper <- c(1, 11, 21)
n <- 5
matrix(runif(n * 3, lower, upper), ncol = 3, byrow = TRUE)
# [,1] [,2] [,3]
# [1,] 0.03372777 10.99940 20.03487
# [2,] 0.33839128 10.91506 20.61724
# [3,] 0.28628535 10.73780 20.83405
# [4,] 0.31427078 10.49257 20.69737
# [5,] 0.64146235 10.64392 20.97785
То же самое можно сказать о rnorm
, rbeta
и т. Д.
Если подумать об этом по-другому, вы хотите выбрать из многовариантного распределение, где, возможно, у нас даже есть некоторая зависимость.Для этого также есть функции, такие как ?mvrnorm
в пакете MASS
или ?rdirichlet
в MCMCpack
.Однако, когда речь идет, скажем, о точках, равномерно распределенных в кубе, следуя вышеприведенному подходу, стандартно, и, если есть необходимость, вы можете определить соответствующую функцию для многомерного равномерного распределения с независимыми компонентами.