【问题标题】:Determine the probability of all outcomes of rolling a loaded die twice in R确定在 R 中掷骰子两次的所有结果的概率
【发布时间】:2020-02-18 00:19:42
【问题描述】:

R 新手。我加载了一个标准的 6 面骰子,因此“4”的可能性是任何其他面的两倍,所以我的随机变量看起来像:

X1 = {[1, 1/7], [2, 1/7], [3, 1/7], [4, 2/7], [5, 1/7], [6, 1 /7]}

我想找到一个随机变量 (X2) 的整个概率密度函数,它对两次滚动 (X1+X1) 的结果求和,所以输出将是 X2 = {[2, 1/49], [ 3, 1/49], ... , [12, 1/49]}。输出可以是数据框、表格或您认为最合适的任何内容。

我尝试了以下方法:

dice <- c(1,2,3,4,5,6)
probs <- c(1/7, 1/7, 1/7, 2/7, 1/7, 1/7) 
c <- expand.grid(probs, probs)
d <- c[,1]*c[,2]
table(d)

但是,这显然不会将结果概率与其各自的结果联系起来。我该怎么做呢?

【问题讨论】:

    标签: r dataframe statistics dice


    【解决方案1】:

    在您已经完成的工作的基础上,一种方法是:

    dice <- 1:6
    probs <- c(1/7, 1/7, 1/7, 2/7, 1/7, 1/7) 
    
    df <- data.frame(
        val = apply(expand.grid(dice, dice), 1, sum),
        prob = apply(expand.grid(probs, probs), 1, prod)
    )
    # solution 1: using split()/lapply()
    tmp <- split(df$prob, df$val) # check this out!
    res <- lapply(tmp, sum)
    ## solution 3: using aggregate()
    res <- aggregate(prob~val, df, sum)
    

    【讨论】:

    • 感谢您的快速响应并展示了两种解决方法!
    • @Scoops 如果它回答了您的问题,请考虑通过单击投票按钮旁边的复选标记来接受解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多