Поиск…


Случайные подстановки

Для генерации произвольной перестановки 5 чисел:

sample(5)
# [1] 4 5 3 1 2

Для генерации произвольной перестановки любого вектора:

sample(10:15)
# [1] 11 15 12 10 14 13

Можно также использовать пакет pracma

randperm(a, k)
# Generates one random permutation of k of the elements a, if a is a vector,
# or of 1:a if a is a single integer.
# a: integer or numeric vector of some length n.
# k: integer, smaller as a or length(a).

# Examples
library(pracma)
randperm(1:10, 3)
[1] 3 7 9

randperm(10, 10)
[1]  4  5 10  8  2  7  6  9  3  1

randperm(seq(2, 10, by=2))
[1]  6  4 10  2  8

Воспроизводимость генератора случайных чисел

Когда вы ожидаете, что кто-то воспроизведет R-код, который имеет в нем случайные элементы, set.seed() станет очень удобной. Например, эти две строки всегда будут производить разные выходные данные (потому что это целая точка генераторов случайных чисел):

> sample(1:10,5)
[1]  6  9  2  7 10
> sample(1:10,5)
[1]  7  6  1  2 10

Эти два будут также производить разные результаты:

> rnorm(5)
[1]  0.4874291  0.7383247  0.5757814 -0.3053884  1.5117812
> rnorm(5)
[1]  0.38984324 -0.62124058 -2.21469989  1.12493092 -0.04493361

Однако, если мы установим семя в нечто одинаковое в обоих случаях (большинство людей используют 1 для простоты), мы получаем два одинаковых образца:

> set.seed(1)
> sample(letters,2)
[1] "g" "j"
> set.seed(1)
> sample(letters,2)
[1] "g" "j"

и то же, что, скажем, rexp() рисует:

> set.seed(1)
> rexp(5)
[1] 0.7551818 1.1816428 0.1457067 0.1397953 0.4360686
> set.seed(1)
> rexp(5)
[1] 0.7551818 1.1816428 0.1457067 0.1397953 0.4360686

Генерация случайных чисел с использованием различных функций плотности

Ниже приведены примеры генерации 5 случайных чисел с использованием различных вероятностных распределений.

Равномерное распределение между 0 и 10

runif(5, min=0, max=10)
[1] 2.1724399 8.9209930 6.1969249 9.3303321 2.4054102

Нормальное распределение с 0 средним и стандартным отклонением 1

rnorm(5, mean=0, sd=1)
[1] -0.97414402 -0.85722281 -0.08555494 -0.37444299  1.20032409

Биномиальное распределение с 10 испытаниями и вероятностью успеха 0,5

rbinom(5, size=10, prob=0.5)
[1] 4 3 5 2 3

Геометрическое распределение с 0,2 вероятностью успеха

rgeom(5, prob=0.2)
[1] 14  8 11  1  3

Гипергеометрическое распределение с тремя белыми шарами, 10 черными шарами и 5 ничьей

rhyper(5, m=3, n=10, k=5)
[1] 2 0 1 1 1

Отрицательное биномиальное распределение с 10 испытаниями и вероятностью успеха 0,8

rnbinom(5, size=10, prob=0.8)
[1] 3 1 3 4 2

Распределение Пуассона со средним и дисперсией (лямбда) 2

rpois(5, lambda=2)
[1] 2 1 2 3 4

Экспоненциальное распределение со скоростью 1,5

rexp(5, rate=1.5)
[1] 1.8993303 0.4799358 0.5578280 1.5630711 0.6228000

Распределение логистики с 0 местоположением и шкалой 1

rlogis(5, location=0, scale=1)
[1]  0.9498992 -1.0287433 -0.4192311  0.7028510 -1.2095458

Ши-квадрат распределения с 15 степенями свободы

rchisq(5, df=15)
[1] 14.89209 19.36947 10.27745 19.48376 23.32898

Бета- распределение с параметрами формы a = 1 и b = 0,5

rbeta(5, shape1=1, shape2=0.5)
[1] 0.1670306 0.5321586 0.9869520 0.9548993 0.9999737

Гамма- распределение с параметром формы 3 и шкалой = 0,5

rgamma(5, shape=3, scale=0.5)
[1] 2.2445984 0.7934152 3.2366673 2.2897537 0.8573059

Распределение Коши с 0 местоположением и шкалой 1

rcauchy(5, location=0, scale=1)
[1] -0.01285116 -0.38918446  8.71016696 10.60293284 -0.68017185

Лог-нормальное распределение с 0 стандартным и стандартным отклонением 1 (по шкале журнала)

rlnorm(5, meanlog=0, sdlog=1)
[1] 0.8725009 2.9433779 0.3329107 2.5976206 2.8171894

Распределение Вейбулла с параметром формы 0,5 и шкалой 1

rweibull(5, shape=0.5, scale=1)
[1] 0.337599112 1.307774557 7.233985075 5.840429942 0.005751181

Распределение Вилькоксона с 10 наблюдениями в первом образце и 20 в секунду.

rwilcox(5, 10, 20)
[1] 111  88  93 100 124

Многочленное распределение с 5 объектами и 3 ящиками с использованием указанных вероятностей

rmultinom(5, size=5, prob=c(0.1,0.1,0.8))
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    1    1    0
[2,]    2    0    1    1    0
[3,]    3    5    3    3    5


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow