2

私は大きなデータセットを持っていますが、おもちゃの例を挙げましょう:

mydata <- data.table(from=c("John", "John", "Jim"),to=c("John", "Jim", "Jack"))

nodesd=unique(c(mydata$from, mydata$to))
nodes <-   create_node_df(  n=length(nodesd), label=nodesd, type=nodesd)
edges <-   create_edge_df(from = mydata$from, to =  mydata$to,  rel = "leading_to")
graph <-   create_graph(  nodes_df = nodes,     edges_df = edges)
render_graph(graph)

しかし、私はこれを取得します:

ここに画像の説明を入力

期待される結果の代わりに:ここに画像の説明を入力

最初の igraph を使用してそれを取得しましたが、その手順は避けたいと思います。

アップデート:

library(data.table)
mydata <- data.table(from=c("John", "John", "Jim"),to=c("John", "Jim", "Jack"), stringsAsFactors = T)

mydata はすでに係数を使用しています。係数を変換する追加の手順は必要ありません。

igraph でプロットを作成できます。

library(igraph)
mygraph <- graph_from_data_frame(d=mydata, directed=T)
plot(mygraph)

ここに画像の説明を入力

または、そのオブジェクトを使用して、DiagrammeR プロットを作成します。

V(mygraph)$label = V(mygraph)$name
V(mygraph)$name = factor(V(mygraph)$name, levels=as.character(V(mygraph)$name))
mygraph2 <- from_igraph(mygraph)
render_graph(mygraph2)

ここに画像の説明を入力

しかし今、igraph を使用せずに、Diagrammer から直接実行しようとしています。

nodesd = unique(unlist(mydata[,.(from,to)]))
nodes <-   create_node_df(  n=length(nodesd), label=nodesd)
edges <-   create_edge_df(from = mydata$from, to =  mydata$to,  rel = "leading_to")
graph <-   create_graph(  nodes_df = nodes, edges_df = edges)
render_graph(graph)

ここに画像の説明を入力

どうしたの?

4

1 に答える 1