2016-06-17 5 views
4

十分に簡単な質問であるべきですが、実際にこれを行う方法はわかりません。私は言う、持って、図のグラフ:R iGraph:一定の規則を満たす頂点を選択する方法

enter image description here

すべてのノードは、日付を持っていると私は外度最大を持つノードを見つけたい、唯一の中央値の前に日付を持っているものの中で。 私はこれを試してみました:

library(igraph) 
nodes <- data.frame(name=c("a", "c", "d", "e", "f", "g", "i", "j", "k"), 
        date = c(27, 13, 0, 18, 0, 8, 44, 26, 22)) 
relations <- data.frame(from=c("d", "d", "f", "f","f", "g","g","g","c","c", "e"), 
         to=c("i", "f","d","c","g","k","a","c","a", "e","j")) 
ggg <- graph.data.frame(relations, directed=TRUE, vertices=nodes) 

V(ggg)$label <- V(ggg)$name 
plot(ggg, layout = layout.fruchterman.reingold.grid, edge.curved=FALSE, 
      edge.arrow.size=0.2,edge.arrow.width=0.4) 

V(ggg)$label <- V(ggg)$date 
plot(ggg, layout = layout.fruchterman.reingold.grid, edge.curved=FALSE, 
    edge.arrow.size=0.2,edge.arrow.width=0.4) 

median_delay <- median(V(ggg)$date) 
vert_before_median <- V(ggg)[ V(ggg)$date <= median_delay ] 
wnodes <- V(ggg)$name[ degree(ggg,v=vert_before_median,mode="out")==max(degree(ggg,v=vert_before_median,mode="out")) ] 

すべてはここまでOKのようだ:私は、このプロパティを満たすノードを保持したいとき

> degree(ggg,v=vert_before_median,mode="out")==max(degree(ggg,v=vert_before_median,mode="out")) 
    c  d  e  f  g 
FALSE FALSE FALSE TRUE TRUE 

しかし、その後、私はトラブルに巻き込まれます。私は私が私がグラフから頂点を選択しようとする方法で何かが欠けてるようだ代わりに

> wnodes 
[1] "e" "f" "k" 

wnodesはノード「F」および「G」を含まなければならないと思いました。私はwhichで試しましたが、それでも正しくはありません:

> V(ggg)[which(degree(ggg,v=vert_before_median,mode="out")==max(degree(ggg,v=vert_before_median,mode="out")) )] 
Vertex sequence: 
[1] "e" "f" 

何か考えてください。

答えて

2

vert_before_median代わりに、すべての頂点のサブセットと、あなたが後にしているものを手に入れる必要があり、長さ5(TRUE、FALSE FALSE、FALSEの論理ベクトルによるR自動的にサイクル上記のコードで

wnodes <- vert_before_median[ degree(ggg,v=vert_before_median,mode="out")==max(degree(ggg,v=vert_before_median,mode="out")) ] 

、 TRUE)を使用すると、長さが9のすべての頂点のサブセットになります。

+0

ありがとうございました!明日あなたのソリューションを試してみるつもりですが、私は自分のMacにiGraphパッケージをインストールするのに夢中です! – Nonancourt

+0

ちょうど確認しました、それは私が欲しいものです。ありがとう!私はまた、それをより自己完結させるために質問を編集しました。 – Nonancourt

関連する問題