2017-03-07 28 views
0

我對使用R(只有幾個月)還不熟悉,並且我正在嘗試爲我的研究(生物學)構建貝葉斯網絡(BN)。我已經用離散變量完成了所有這些工作,但是,現在我正在嘗試整合連續,我知道這可能是一個問題。現在我只是建立一個BN來使用MoTBFs包來構建一個混合網絡,使用bnlearn包。這裏是我的數據:build.whitelist中的錯誤:白名單中存在未知節點標籤

head(training) 
Sample rs12913832 rs16891982 rs12203592 rs1800407 rs3829241 rs1805007 rs1408799 rs683 rs3737576 
1 1078   CT   GG   GG  CT  GG  CC  GG  TT  TT 
2 1254   TT   CC   GG  CC  GG  CC  AG  GG  TT 
3 1285   CT   GG   GG  CC  GG  CC  GG  TT  TT 
4 1308   CT   GG   GG  CC  AG  CT  AG  GT  TT 
5 1382   CC   GG   GG  CC  AA  CT  AG  GT  TT 

我得到這個字串下工作,因爲我只是從上面的數據目標的幾個單核苷酸多態性:

bn.bayes.Leye<-mmhc(trainingmotbf2[,c(2:6,8,18,26)]) 

但是,它沒有創建正確的圓弧,所以我想創建一個白名單,它看起來像這樣(L是集未顯示上面列):

from   to 
1 L rs12913832 
2 L rs1800407 
3 L rs16891982 
4 L rs1408799 
5 L rs3829241 
6 L rs12203952 
7 L rs12896399 

當我嘗試添加該白名單,叫white到BN功能:

bn.bayes.Leye<-mmhc(trainingmotbf2[,c(2:6,8,18,26)],whitelist=white) 
Error in build.whitelist(whitelist, nodes = names(x), data = x, algo =  method, : 
    unknown node label present in the whitelist. 

現在這個錯誤並不神祕,但白名單中的所有名字都在數據框中。 THey出現在成功在白名單中創建的bn中。我已經嘗試過將數據作爲因素和角色認爲必須是某種格式,但同樣的錯誤。我錯過了什麼?

有沒有人有經驗或建議使用連續的父節點和離散子節點來構建BN的包?也許MoTBFs包不是我應該使用的。

回答

0

對於任何有興趣的人,我可以通過重新編碼我是如何創建白名單來實現它的。也許是因爲我在每種情況下分別使用L,而不是單獨使用可能是問題所在。

arcs<-data.frame(from="L",to=c("rs12913832","rs16891982","rs12203592","rs1800407","rs12896399","rs3829241","rs1408799"))