DiagrammeR:从最小节点和边缘数据帧创建图

时间:2019-06-07 19:01:46

标签: r diagrammer

我正在尝试使用DiagrammeR包根据手动创建的两个简单数据框创建图形。生成的图应该只包含两个节点(“ a”和“ b”),以及一个连接它们的边(“ a”->“ b”)。

根据文档,这似乎应该很容易做到。 从1.0.1版开始的软件包文档中,以下是create_graph()函数的最少输入量:

  

nodes_df:可选数据帧,至少包含一列   (称为ID),其中包含该图的节点ID。附加栏   (节点属性)可以包含在命名节点的值中   属性。

     

edges_df:一个可选数据框,至少包含两列   (称为“往返”)提供节点ID的位置。附加栏   (边缘属性)可以包含在命名边缘的值中   属性。

根据该文档,似乎至少有以下两次尝试定义图形的尝试之一:

library(Diagrammer)
options('stringsAsFactors' = FALSE)

# Using integer node IDs
create_graph(nodes_df = data.frame(id = c(1L, 2L)),
             edges_df = data.frame(from = 1L, to = 2L))

# Using character node IDs
create_graph(nodes_df = data.frame(id = c('a', 'b')),
             edges_df = data.frame(from = 'a', to = 'b'))

但是,在两次尝试创建图形的过程中,我都收到以下错误消息:

Error in `[.data.frame`(nodes_df, , i) : undefined columns selected

为什么通话无法正常工作?类似于此处给出的示例,仅使用data.frame()函数通过创建节点和边缘数据帧来创建预期图形的最小方法是什么?

1 个答案:

答案 0 :(得分:0)

我不确定我是否对您的问题足够了解,但是,我认为使用mastercreate_node_df而不是使用crete_edge_df函数可能更好。我在使用此软件包时给了您一个示例:

data.frame

干杯。