2016-04-19 36 views
-1

私は45種類以上の薬物を含む大きなデータセットを持っています。与えられたカテゴリーABの条件付き確率をどのように見つけるかは、すべてのIDに対してACが存在することである。 1,2,3などはユニークなIDです。Rの条件付きプローバ

私のデータセットは

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

たちはR.でこれを行うことができますように、私はRでPROB関数を使用してみましたが、そのは私にエラーを与えて見えます。

PS:カテゴリが必ずしも連続しているとは限りません。私は出現回数にかかわらず、それぞれのカテゴリーを各IDごとにユニークであると考えています。

+0

「正解」とは何ですか?これらのリストオブジェクトはありますか? ABのすべてのID値にもAC値があります。さらに、 'dput(dat)'の結果をpostする際、datは考慮中のデータフレームまたは行列です。行の先頭にあるピリオドは、正当なRデリミタではありません。デフォルトのパッケージには 'prob'関数はありません。 –

+0

AB、AD、ACなどは、薬物分類である。 IDは患者に参照されています。例えば、Id1はAB、AD、AC、FG、AB、DC、GM、ACを服用している患者です。私は、すでにACを取得している場合、患者1がACを取る確率は何かを調べようとしています。私はそれが消えることを願っています。 – perry

+0

Rにパッケージprobをインストールしました。ライブラリ(prob)にこの関数があります – perry

答えて

0

私はあなたが探しているものについて混乱かもしれないが、簡単な条件付き確率は次のようだ:また

# 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) 

、私はあなたが提供されたデータサンプルに基づいて文字列として保存されたカテゴリを仮定しました。