我创建了一个模拟掷骰子 100 次的程序。我需要帮助来添加单个骰子的结果以及如何绘制结果的概率分布。
这是我的代码:
sample(1:6, size=100, replace = TRUE)
我创建了一个模拟掷骰子 100 次的程序。我需要帮助来添加单个骰子的结果以及如何绘制结果的概率分布。
这是我的代码:
sample(1:6, size=100, replace = TRUE)
到目前为止,您所做的是对掷骰子进行采样(请注意,我添加了一行设置种子以实现可重复性:
set.seed(123)
x <- sample(1:6, size=100, replace = TRUE)
“添加[]单个骰子的结果”的简单命令是table()
:
table(x)
# x
# 1 2 3 4 5 6
# 17 16 20 14 18 15
然后,为了“绘制结果的概率分布”,我们必须首先得到那个分布;幸运的是,R 提供了方便的prop.table()
函数,它适用于这种离散分布:
prop.table(table(x))
# x
# 1 2 3 4 5 6
# 0.17 0.16 0.20 0.14 0.18 0.15
然后我们可以很容易地绘制它;对于绘制 PMF,我首选的绘图类型是"h"
:
y <- prop.table(table(x))
plot(y, type = "h", xlab = "Dice Result", ylab = "Probability")
sample()
可以很容易地使用它的prob
参数来模拟加权骰子。来自help("sample")
:
使用
示例(x,大小,replace = FALSE,prob = NULL)参数
[省略部分内容]
prob 一个概率权重向量,用于获取被采样向量的元素。
因此,我们只需将您的首选权重添加到prob
参数中并照常进行(请注意,我还将您的样本量从 100 增加到 10000):
set.seed(123)
die_weights <- c(4/37, rep(6/37, 4), 9/37)
x <- sample(1:6, size = 10000, replace = TRUE, prob = die_weights)
(y <- prop.table(table(x)))
# x
# 1 2 3 4 5 6
# 0.1021 0.1641 0.1619 0.1691 0.1616 0.2412
plot(y, type = "h", xlab = "Dice Result", ylab = "Probability")