2

長さが異なる2つの異なるノードセットからグラフを生成したいと思います。以下のコードを見つけることができます。

ご覧のとおり、次のエラーが表示されます: エラー: 長さ(開始) == 長さ(終了) は TRUE ではありません これに対する解決策はありますか?

よろしくお願いします!!

library(DiagrammeR)
g1<- c("a","b","c")
g2<-c("d","f")

#creating a node data frame
nodes1<- create_node_df(n=length(g1),
                   style= "filled",
                   color= "lightblue",
                   shape= "box")

nodes2<- create_node_df(n=length(g2),
                    style= "filled",
                    color= "lightblue",
                    shape= "box")
edges<-create_edge_df(from = g1,
                  to= g2,
                  rel= "related",
                  color= "black")

Error: length(from) == length(to) is not TRUE



all_nodes<- combine_ndfs(nodes1, nodes2)

create_graph(nodes_df = all_nodes,
                                    edges_df = edges,
                                    directed = TRUE)
4

1 に答える 1

2

g1の各頂点を のそれぞれと接続することを意味していると思われますg2。とを定義nodes1した後nodes2

(all_nodes <- combine_ndfs(nodes1, nodes2))
#   id type label  style     color shape
# 1  1 <NA>  <NA> filled lightblue   box
# 2  2 <NA>  <NA> filled lightblue   box
# 3  3 <NA>  <NA> filled lightblue   box
# 4  4 <NA>  <NA> filled lightblue   box
# 5  5 <NA>  <NA> filled lightblue   box

後でこの変数を で使用するのでcreate_graph、1、2、3 のそれぞれを 4 および 5 のそれぞれと接続します。適切な引数を作成するcreate_edge_dfには、 を使用しますrep。それは、次のように?create_edge_df述べているからです。

from - エッジのアウトバウンド元のノード ID 値のベクトル。ベクトルの長さは to ベクトルの長さと等しくなければなりません。

to - エッジが着信するノード ID 値のベクトル。ベクトルの長さは、from ベクトルと等しくなければなりません。

そう、

edges <- create_edge_df(from = rep(1:3, 2), to = rep(4:5, each = 3),
                        rel = "related", color = "black")
create_graph(nodes_df = all_nodes, edges_df = edges, directed = TRUE)
于 2019-01-14T20:08:53.493 に答える