
212
|
第
8
章
8.6 生成随机序列
8.6.1 问题
你需要生成随机序列,例如一个模拟硬币投掷的序列或一个伯努利试验的模拟序列。
8.6.2 解决方案
使用函数 sample。从可能值集合中取样,并设置 replace = TRUE:
sample(
set
,
n
, replace = TRUE)
8.6.3 讨论
函数 sample 从一个集合中随机选定项。它通常是不放回采样,这意味着它不会两次
选择相同的项,如果你尝试采样的数量超过集合中存在的项数,则会返回错误信息。
但是,使用 replace = TRUE,样本可以反复选定项,这允许你生成长的随机项
序列。
以下示例生成一个模拟抛 10 次硬币的随机序列:
sample(c("H", "T"), 10, replace = TRUE)
#> [1] "H" "T" "H" "T" "T" "T" "H" "T" "T" "H"
下一个例子生成一个 20 次伯努利试验序列
—
随机的成功或失败。我们使用 TRUE 表示
一次成功:
sample(c(FALSE, TRUE), 20, replace = TRUE)
#> [1] TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE FALSE
#> [12] TRUE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE
默认情况下,样本等概率地在集合元素中选择,因此选择 TRUE 或 FALSE 的概率都为
0.5。对于通常的伯努利试验 ...