У меня есть фрейм данных с именами животных:как поставить igraph края в правильном порядке
df <- data.frame(
col1 = c("dog", "cat", "bird", "mammal", "avis", "canis", "feline"),
col2 = c("canis", "feline", "avis", "animal", "animal", "mammal", "mammal"))
library(igraph)
species <- union(df$col2, df$col1)
df <- df[c('col2', 'col1')]
names(df) <- c('from', 'to')
species <- species[order(species)]
species <- sort(union(df$col2, df$col1))
g <- graph.data.frame(df, directed = TRUE, vertices = species)
plot(g,vertex.size=2, vertex.label.dist=0.5, vertex.color="cyan",
edge.arrow.size=0.5, layout=layout.reingold.tilford(g))
После того как я запустить код, я получаю эту схему (изображение ниже). В кадре данных первые 3 элемента: "dog", "cat", "bird"
, а на графике - "bird", "dog", "cat"
. Короче говоря, порядок слов меняется на противоположный, и я хочу, чтобы они были в определенном порядке без изменения кадра данных.
Сказать igraph в каком порядке я хочу, чтобы мои данные были представлять я использую species <- species[order(species)]
эту строку кода, в то время как он прекрасно работает с кадрами данных, которые имеют одну букву он не работает с этим или любым другим кадры данных, которые используют полные слова.
Я не понимаю, как использовать 'get.edgelist (г)' или 'set.edge.attribute()' в моем коде –