にエッジを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(G)'や 'set.edge.attributeを()'を使用する方法を理解していません –