在R中模拟骰子和掷硬币的结果

Mat*_*ete -1 statistics r probability

实验涉及滚动一个公平的模具并获得x说,然后抛出一个公平的硬币x次并记录尾巴的数量.我需要做50次这个实验并将结果记录在矢量中(我将用它绘制直方图.)

到目前为止这是我的代码:

    for (i in 1:100)
    {X <- sample(6,1,replace=TRUE,c(1,1,1,1,1,1)/6)
    Y <- sample(2,1,replace=TRUE,c(1,1)/2)}
    Youtcomes <- c(sum(Y))
    Youtcomes
Run Code Online (Sandbox Code Playgroud)

但是我没有给我一个包含100个元素的向量,而是只获得一个数字.我哪里错了?

注意:我必须使用for循环.

mne*_*nel 6

使用R矢量化的事实.然后,您可以使用二项分布来复制抛硬币.

heads <- rbinom(size = sample(6,100, replace = TRUE), n=100, prob = 0.5)
sum(heads)
Run Code Online (Sandbox Code Playgroud)

  • @TaRehman - 这在这里效率低下.SO不是作业的帮助台.我正在回答的问题是"我做错了什么"与描述有关.我建议在这里包括`for`. (3认同)

Rei*_*son 6

也许我错过了一些东西,但是有人打电话sample()来做100卷骰子,然后将其插入rbinom()硬币投掷中会出现什么问题?我们将输出传递sample()size参数

> set.seed(1)
> rbinom(100, size = sample(6, 100, replace = TRUE), prob = 0.5)
  [1] 1 1 1 6 1 2 2 2 3 1 2 1 2 1 1 0 3 1 1 3 6 1 2 0 2 1 1 1 2 2 2 1 0 1 4 3 3
 [38] 1 5 2 3 2 2 1 3 2 0 2 1 4 2 3 1 1 1 0 1 1 1 1 2 2 1 2 3 1 0 2 1 2 2 4 2 1
 [75] 1 5 3 2 3 5 1 2 3 1 4 0 3 1 2 1 1 0 1 5 2 3 0 2 2 3
Run Code Online (Sandbox Code Playgroud)

  • 然后你被教导得很厉害!这不是如何回答这个问题的.我可以想到使用`for()`循环的许多理由,并且经常这样做,因为我没有狂热的担心`for()`一些"适用"爱的R编码器表现出来.但是,这不是**要求`for()`的情况.[所以]*不是*你的私人"帮我写蹩脚的R代码帮助台",如果这是你的问题,你将得到我的近距离投票.[so]不是关于你,而是关于策划*最好的编程资源.请相应地集中您的问题. (4认同)