
概率
|
209
#> [1] 3.14
rgamma(1, shape = 2, rate = 0.1) # One gamma variate
#> [1] 22.3
与 runif 一样,第一个参数是要生成的随机数的数量。随后的参数是分布的参数,例
如正态分布的 mean 和 sd,以及二项式分布的 size 和 prob 等。有关详细信息,请参
阅 R 函数的帮助页面。
到目前为止给出的示例使用简单的纯量来表示分布参数。然而,参数也可以是向量,在
这种情况下,R 会在生成随机数时重复循环向量。以下示例生成了三个正态分布的随机
数,它们分别来自均值为
-
10、0 和 +10,标准差都为 1.0 的三个正态分布:
rnorm(3, mean = c(-10, 0, +10), sd = 1)
#> [1] -9.420 -0.658 11.555
参数本身是随机的,在诸如分层模型情况下,这是一种强大的功能。下一个示例计算 30
个正态随机数,其平均值本身是超参数为
μ
= 0 和
σ
= 0.2 的正态分布的随机数:
means <- rnorm(30, mean = 0, sd = 0.2)
rnorm(30, mean = means, sd = 1)
#> [1] -0.5549 -2.9232 -1.2203 0.6962 0.1673 -1.0779 -0.3138 -3.3165
#> [9] 1.5952 0.8184 -0.1251 0.3601 -0.8142 0.1050 2.1264 0.6943 ...