2016-07-06 22 views
1

私は初めてのポスターですが、このサイトの長年の学習者です。私の質問に対する答えが以前の投稿からリバースエンジニアリングできなかったのは今回が初めてです。だから私は誰かが私の解決を助けることを望んでいます。Reingold-Tilfordの木グラフとしてRのbnlearnパッケージからヒルクライミングアルゴリズムの結果をプロットするエラー

Reingold-Tilfordツリーグラフとして相関行列を使ってヒルクライミング検索アルゴリズム(hcはRのbnlearnパッケージから)の結果をプロットしようとしています。

は、私が実行セイ:

hc.obj<-hc(corr.matrix) 
    hc.plot<-qgraph(hc.obj, directed = "TRUE", layout = "spring") 

私は監督の関係問題はないのFruchterman-Reingoldのレイアウトを取得します。

しかし、hc.objの情報をどのようにフォーマットするにしても、ツリーレイアウトは機能しません。たとえば、上記のコードを "layout = tree"で実行すると、エラーが発生します。 "l [、1]のエラー:次元数が正しくありません。私はlayout_as_treeでエラー「エラー(hc.obj)を取得

layout_as_tree(hc.obj) 

::私はとIGRAPHを介して実行しようとした場合、同様に

require("bnlearn") 
    require("qgraph") 
    cm <- matrix(runif(100), ncol=10) 
    cm <- (cm * lower.tri(cm)) + t(cm * lower.tri(cm)) 
    diag(cm) <- 1 
    cm.df<-as.data.frame(cm) 
    hc.obj<-hc(cm.df) 
    hc.plot<-qgraph(hc.obj, directed = "TRUE", layout = "tree") 

:ここ

が再現可能な例だありませんグラフオブジェクト "

+1

ようこそ!再現可能な例は私たちがあなたを助けるのを助けるでしょう。 http://stackoverflow.com/help/mcve –

+1

申し訳ありません再現可能な例で更新されました。 – Miri

答えて

1

プロット関数を使用して意図しない操作を行っているようです。

...either a weights matrix or an edgelist. Can also be an object of class "sem" (sem), "mod" (sem), "lavaan" (lavaan), "principal" (psych), "loadings" (stats), "factanal" (stats), "graphNEL" (Rgraphviz), "pcAlgo" (pcalg), "huge" (huge), "select" (huge) or the output of glasso".

あなたがすることができ、しかしplot a bn object:インスタンスのqplot()に対し、以下のサポートbnを

hc.obj

は、クラスのモデルオブジェクトです。 1つの方法は、単に plot()を使用することです。

if(!require(pacman)) install.packages("pacman") 
pacman::p_load(qgraph,bnlearn,Rgraphviz) 
cm <- matrix(runif(100), ncol=10) 
cm <- (cm * lower.tri(cm)) + t(cm * lower.tri(cm)) 
diag(cm) <- 1 
cm.df<-as.data.frame(cm) 
hc.obj<-hc(cm.df) 
plot(hc.obj) 

enter image description here

もう一つの方法は、graphviz.plot()を使用することです。

bnlearn::graphviz.plot(hc.obj) 

enter image description here

あなたが検索やレビューthe relevant CRAN task viewを行う場合、あなたはおそらくbnクラスオブジェクトをサポートする多くのパッケージを見つけることができます。

+0

ありがとうございます。私はツリーレイアウトでプロットできる代替パッケージを探してみます。今日私が再現しようとしているものを含む論文が出ました:[link](http://www.sciencedirect.com/science/article/pii/S0005796716301103)、彼らの所在地の詳細は記載されていません。 hc.plotの出力を現在/無しの重み(1と0)の行列に変換するのに役立つと思ったが、同じエラーが出る。 qgraphのスプリングレイアウトはこのような出力でうまくいくように見えるので、ツリーレイアウトとは何か特別なものでなければならないようです。 – Miri

+0

@Miri $ 20や特別なアクセス権限が必要なため、リンク先の用紙は表示されませんが、2番目のプロットはデンドログラムの近くにあります。 –

+1

あなたは完全に正しいです!あなたが提案したgraphviz.plotを実行しただけで完璧です。本当にありがとう!! – Miri

関連する問題