r - 计算在 R 中按该顺序获得黑桃、红心和梅花的概率
问题描述
我正在为此苦苦挣扎,有人可以帮助我吗?我目前的代码是
N <- probspace(urnsamples(pcartas, 3,replace=FALSE, ordered=TRUE))
CDE <- intersect(subset(N, (N$outcomes[[]][[2]][1] == "Spade")),
subset(N, (N$outcomes[[]][[2]][2] == "Heart")), subset(N, (N$outcomes[[]][[2]][3] == "Club")))
pcorazones_diamantes_espadas <- Prob(CDE)
但它不起作用。非常感谢
解决方案
我认为您的pcartas
对象应该是一个简单的向量,而不是数据框。否则,您将难以提取列表的元素。
清除 R 工作区,安装prob包并加载它。
rm(list=ls())
install.packages("prob")
library(prob)
创建样本空间。
pcartas <- cards()$suit
你会看到这是一个因子向量。我要将其转换为字符向量,因为该urnsamples
函数将标签转换为它们的数字代码,这在您想要计算概率时变得很困难。如果您不执行下一步,您将看到问题。
pcartas <- unclass(as.character(pcartas))
从此样本空间中无需替换的样本并转换为概率空间(上面的第一行代码):
L <- urnsamples(pcartas, size=3, replace=FALSE, ordered=TRUE);
N <- probspace(L);
计算任何事件的概率。例如,在第一张牌上获得“黑桃”的概率为:
Prob(N, X1=="Spade") # Answer=0.25 or 13/52
在第一张牌上获得黑桃,在第二张牌上获得红心的概率为:
Prob(N, X1=="Spade" & X2=="Heart") # Answer=0.0637 or 13/52 * 13/51
最后,在第一张牌上获得黑桃,在第二张牌上获得红心,在第三张上获得梅花的概率为:
Prob(N, X1=="Spade" & X2=="Heart" & X3=="Club") # Answer=0.016568 or 13/52 * 13/51 * 13/50
如果您没有将样本空间对象转换为字符向量,那么您将不得不使用数字代码来获取概率:
Prob(N, X1==1 & X2==2 & X3==3)
推荐阅读
- angular - 代理配置错误(使用自定义登录的 ngx-admin) - 错误 GET http://localhost:4200/api/login 404(未找到)
- java - AclClassIdUtils : 无法获取类 id 类型
- mongodb - 从嵌套数组中移动数据
- excel - 有没有办法修复代码以检查文本框或组合框是否为空?
- redux - 如何处理 Redux Reducer 中的错误和异常?
- c# - g.Draw 经常闪烁
- javascript - Javascript:如何按顺序运行慢速函数?
- java - 处理片段中的空回收查看器
- python - 为什么 splatting 在 rhs 上创建一个元组,但在 lhs 上创建一个列表?
- c - 无法通过引用将结构传递给函数