2016-04-19 11 views
-1

Ich habe einen großen Datensatz mit mehr 45 Kategorien von Drogen. Wie man die bedingte Wahrscheinlichkeit einer Kategorie AB bei AC herausfinden kann, gibt es für jede ID. 1, 2,3 usw. sind eindeutige IDs.Bedingte Prob in R

Mein-Datensatz sieht aus wie

ID1.AB AD AC FG AB DC GM AC 
ID2.AB AC DG GM 
ID3.AB DG GM AC 

Können wir das in R. tun habe ich versucht, prob Funktion in R verwenden, aber seine mir ein Fehler geben.

PS: Die Kategorien sind nicht unbedingt aufeinander folgend. Ich betrachte jede Kategorie als einzigartig für jede ID, unabhängig davon, wie oft sie erscheint.

+0

Was ist die "richtige Antwort"? Sind diese Listenobjekte? Alle ID-Werte mit AB haben auch AC-Werte. Schreiben Sie außerdem die Ergebnisse von 'dput (dat)', wobei dat der betrachtete Datenrahmen oder die Matrix ist. Perioden nur am Anfang einer Zeile sind kein zulässiges R-Trennzeichen. Und in den Standardpaketen gibt es keine prob-Funktion. –

+0

AB, AD, AC, usw. sind Drogenkategorien. Die ID wird an den Patienten weitergeleitet. Zum Beispiel ist Id1 ein Patient, der AB, AD, AC, FG, AB, DC, GM, AC nimmt. Ich versuche herauszufinden, wie hoch die Wahrscheinlichkeit ist, dass Patient 1 AC nimmt, wenn er bereits AC eingenommen hat. Ich hoffe es wird klar. – perry

+0

Ich installierte Paket prob in R. Bibliothek (Prob) hat diese Funktion – perry

Antwort

0

ich verwirrt sein kann über das, was Sie suchen, aber die einfache bedingte Wahrscheinlichkeit scheint, die folgenden zu sein:

# Create Dataset 
mystring = c("AD", "AC", "BD", "DC") 

k = NULL 
for(i in 1:45){ 
    samp = sample(mystring, 3, replace = T) 
    k = c(k,paste(samp, collapse = " ")) 
} 

st = data.frame(1:45, k, stringsAsFactors = F) 

library(stringr) 

# Number of strings that contain both groups or 
# occurances of the intersection 
alpha = str_detect(st[,2],"AC") & str_detect(st[,2],"AD") 

# Occurances of AC 
beta = str_detect(st[,2], "AC") 

# P(A \ B)/P(B) 
(sum(alpha)/45)/
    (sum(beta)/45) 

Auch nahm ich die Kategorien, in denen als Strings gespeichert sind, basierend auf der Datenprobe Ihnen zur Verfügung gestellten .