build.whitelist出现错误:白名单

时间:2017-03-07 14:51:58

标签: r whitelist bnlearn

我还是新手使用R(仅几个月),我正在尝试为我的研究(生物学)建立一个贝叶斯网络(BN)。我已经用离散变量完成了所有这些,但是,我现在正在尝试集成连续性,我知道这可能是一个问题。现在,我正在构建一个BN,以便在MoTBFs包中使用bnlearn包来构建混合网络。这是我的数据:

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

我已经将下面的字符串用于工作,因为我只针对上述数据中的几个SNP:

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.

现在错误并不神秘,但白名单中的所有名称都在数据框中。然后出现在bn中,成功地在白名单中创建。我已经尝试过数据作为因素和字符,这些因素和字符必须是某种格式,但同样的错误。我错过了什么?

是否有人拥有使用连续父节点和离散子节点构建BN的经验或建议包?也许MoTBFs包不是我应该使用的。

1 个答案:

答案 0 :(得分:0)

对于任何有兴趣的人,我都可以通过重新编码我创建白名单的方式来实现它。也许是因为我在每种情况下都单独使用L而不是单独使用L可能是问题。

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