1

I am trying to add centrality measures as attributes to a "master graph", g_master. Here is my code:

library(igraph)
#generate master graph
g <- sample_pa(10000)
g_in <- degree(g, mode="in")
g_out <- degree(g, mode="out")
g_inclo <- closeness(g, mode="in")
g_outclo <- closeness(g, mode="out")
g_bet <- betweenness(g)
set_vertex_attr(g, "name", index=V(g), value = V(g))
g_master <- data.frame(V(g), g_in, g_out, g_inclo, g_outclo, g_bet)

But I get the following:

> g_master <- data.frame(V(g), g_in, g_out, g_inclo, g_outclo, g_bet)
Error in as.data.frame.default(x[[i]], optional = TRUE) : 
  cannot coerce class ""igraph.vs"" to a data.frame

Other parts of the codes are fine.

G5W
  • 36,531
  • 10
  • 47
  • 80
Erwin
  • 71
  • 6

1 Answers1

1

As the error says, it faces problems trying to use something of class igraph.vs. In particular, it is V(g) what causes problems. But we can coerce it as follows:

g_master <- data.frame(V = as.vector(V(g)), g_in, g_out, g_inclo, g_outclo, g_bet)
head(g_master, 2)
#   V g_in g_out      g_inclo   g_outclo g_bet
# 1 1  208     0 2.193608e-05 1.0001e-08     0
# 2 2   48     1 1.042957e-08 1.0002e-08   411
Julius Vainora
  • 47,421
  • 9
  • 90
  • 102