I am having difficulty on making graph data in igraph package.

I want to conduct centrality analysis, and prior to do that I found that I have to make a graph data first. So I was struggling to make graph with 'graph.data.frame' function with 'igraph' package. This is my code.

links = fread("C:/Users/82109/Documents/centrality_baselayer.csv")           
links = links %>% select("LINK_ID", "UP_FROM_NO", "UP_TO_NODE") # the first picture

nodes = fread("C:/Users/82109/Documents/linkdata.csv")
nodes = nodes %>% select("UP_FROM_NO")
nodes = unique(nodes) # the second picture 

with the code above, I gained following data :

and with the dataframes above and a code below, I tried to make graph.

graph.data.frame(d = links, vertices = nodes, directed = T)

But this error bothers me...
Error in graph.data.frame(d = links, vertices = nodes, directed = T) : Some vertex names in edge list are not listed in vertex data frame

This makes me very embarrassed now...I would be very appreciate if you help me!

Hi,

I cannot see your data, which makes a specific answer possible. Please proved a REPREX for helping us and getting more specific help.

The error message is however quite self explaining: your edge-list contains links between vertices that are not present in the node-list. As you read them from different csv's, I expect a mismatch here?

Have you tried creating the nodelist directly from the link-file?

nodes = data.frame(node = unique(links$UP_FROM_NO, links$UP_TO_NODE))

#or use select-full_join-distinct for dplyr

nodes =  full_join(select(links, UP_FROM_NO), select(links, UP_TO_NODE), by = c("UP_FROM_NO" = 'UP_TO_NODE") %>%
                 distinct() 

This will assure the nodelist contains all the links table appear unambiguously in the node-list

JW

I created node list directly from link file, as your question just now. After conducting similar process with the method you told me, I finally made it. Thank you. But I am facing another problem right now...Have you did this stuff before?

Incidentally I do and did. However, if you now run into other problems, I suggest you tick this question for answered and post a new one. This will help you to get faster responses from the community.

Please use the reprexpackage, see link above.

Happy to see this step worked for you.

JW

Umm...ok. Thank you so much:)