我创建了一个程序,可以模拟掷骰子100次。在汇总单个骰子的结果以及如何绘制结果的概率分布方面,我需要帮助。
这是我的代码:
sample(1:6, size=100, replace = TRUE)
答案 0 :(得分:0)
到目前为止,您已经完成了掷骰子示例的操作(请注意,我添加了一行以设置可重复性的种子:
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,大小,替换=假,概率= NULL)参数
[省略了部分内容]
概率概率权重向量,用于获取被采样向量的元素。
因此,我们只将您喜欢的权重添加到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")