0

現在、データフレームが機能していますが、データフレームの主題の起源を調べたいと思います。データ フレームの作成に使用したコードの一部を次に示します。

df <- as.data.frame(t(test)) #This is so the row names are products
    vertices <- row.names(df)
    place <- colnames(df)
    L <- length(vertices)
    numedges <- choose(L,2)
    edges <- data.frame(v1=rep(NA, numedges), v2=NA, numrows=NA, location=NA)
    k <- 0
    for(i in 1:(L-1)) {
    for(j in (i+1):L) {
      k <- k + 1
      edges$v1[k] <- vertices[i]
      edges$v2[k] <- vertices[j]
      edges$numrows[k] <- sum(df[vertices[i], ]=="Yes" & df[vertices[j], ]=="Yes")
      edges$location[k] ### Here is my problem!!!
    }}

そして、出力を次のようにしたいと思います。

edges
          v1                    v2     numrows location #What I would like to see
1        Fish                 Squid       8    Town 1, Town 2, Town 4 
2        Fish                Fruits       0    Town 1
3        Fish                  Wood       0    Town 1
4        Fish                   Etc       2    Town 1, Town 2
5        Fish                  Corn       1    Town 1

numrows はすべてのエッジの合計になると思いますか? 私が間違っている場合は、私を修正してください。そこで、numrow 関数が満たされた場所をすべて集めたいと思いました。

4

1 に答える 1

0

質問が不明確です。グラフ エッジに属性を追加する方法がわかりませんか? たとえば、属性の場所を追加するには、次のようにします。

E(g)$location=colnames(df)  ## g is your graph

これを使用して確認できます

get.edge.attribute(g, 'location')

たとえば、属性 location を使用してエッジのラベルを設定できます。

library(igraph)
g <- graph.ring(5)
V(g)$size <- 5
E(g)$location=paste(letters[1:5],LETTERS[1:5],sep=':')
E(g)$label <- get.edge.attribute(g, 'location') 
E(g)$label.cex <- 2
plot(g)

ここに画像の説明を入力

于 2013-12-03T14:54:07.250 に答える