从数据表的子集创建igraph失败

时间:2019-11-18 09:54:15

标签: r igraph

下面是一些用于创建图形的代码。使用整个data.table对象a时,所有操作均按预期进行(尽管我收到有关igraph版本冲突的警告-为什么?)。但是,当我取消注释行a <- data.table::copy(a[1:3])时,然后添加顶点会引发错误。

有人可以通过改编以下代码来帮助我理解如何构建没有警告和错误的图形吗?我正在使用R 3.6.0和igraph 1.2.4

# create data.table.
op_date <- c("a", "a", "a", "b", "b", "b")
ocpsTT.ocpref <- c("nNBA",  "nNOH",  "nNEE",  "nNBA",  "nNOH",  "nNEE")
a <- data.table(op_date, ocpsTT.ocpref )

# Select subset of rows if needed
#a <- data.table::copy(a[1:3])

# iteratively add stations
add_graphs <- function(x){
  print(x)
  ig <<- ig + igraph::path(x)
}

# make a list of all possible nodes
values <- unique(a[, ocpsTT.ocpref])

# set up empty graph and name vertices
ig <- igraph::make_empty_graph(n = length(unique(unlist(values))),  directed = TRUE) %>%
  igraph::set_vertex_attr("name", value = sort(unique(values)))

# add vertices and plot
a[, .(p = add_graphs(ocpsTT.ocpref)), by=op_date]
plot(ig)

0 个答案:

没有答案