Рассчитайте вероятность получения пики, червы и трефы в R в этом порядке - PullRequest
0 голосов
/ 22 февраля 2020

Я борюсь с этим, кто-нибудь может мне помочь плз? Мой текущий код

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)

Но он не работает. Большое спасибо

1 Ответ

0 голосов
/ 23 февраля 2020

Я думаю, ваш pcartas объект должен быть простым вектором, а не фреймом данных. В противном случае у вас возникнут трудности с извлечением элементов списка.

Очистите рабочее пространство R, установите пакет prob и загрузите его.

rm(list=ls())
install.packages("prob")
library(prob)

Создайте образец пробел.

pcartas <- cards()$suit

Вы увидите, что это фактор-вектор. Я собираюсь преобразовать это в символьный вектор, потому что функция urnsamples преобразует метки в их числовые коды c, что затрудняет вычисление вероятностей. Вы увидите проблему, если не выполните этот следующий шаг.

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

Если вы не конвертировали пробное пространство Если вы возьмете объект из вектора символов, то вам понадобятся коды чисел c, чтобы получить вероятности:

Prob(N, X1==1 & X2==2 & X3==3) 
...