2013-04-22 6 views
6

なぜdegree.distributionが私のために働いていないのか分かりません。私はR i386 3.0.0とR x64 3.0.0を試しました。Rグラフdegree.distributionが動作しない

library(igraph) 

testG = graph.empty(n=10, directed=TRUE) 
for(row in 1 : 5) { 
    src = row 
    dest = row + 1 
    testG = add.edges(testG, rbind(src, as.numeric(dest))) 
    if(row %% 2 == 0) { 
     dest = row + 2 
     testG = add.edges(testG, rbind(src, as.numeric(dest))) 
    } 
} 
testG 

testD = degree.distribution(testG, v=V(testG), cumulative=FALSE) 
testD 
plot(1 : length(testD), testD, "h", main="Website Graph Degree Distribution", xlab="Degree", ylab="Probability of Degree") 
degree(testG) 

testGを示しています:IGRAPH D--- 10 7 --(理にかなって)ここにグラフを生成し、その分布を表示するための簡単なスクリプトです。 testDには、NULL(なぜ?)が表示されます。 プロットは(1,1)に1つの値しかありません。しかしグラフには度の出力(testG)によって示されるように、他の次数を持つノードが含まれています。これは[1,3,2,4,2,2,0,0,0,0]です。

+4

これはバグです。パッケージ作成者に報告することができます。関数は 'hist'を使用しますが、その結果は' intensities'フィールドを持っていましたが、R 3.0.0では削除されました(代わりに 'density'を使うことができます)。 –

+0

ありがとうございます!私はそのような疑惑を抱いていた。 Rx64 2.15.2でスクリプトを実行すると、完璧に動作します。 – user1748601

+4

すでに報告され、修正されました:https://bugs.launchpad.net/igraph/+bug/1164523あなた自身の 'degree.distribution'関数を回避する方法として、igraphからコピーして'密度を「密度」にする。 –

答えて

関連する問題