2013-04-22 2 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)에 하나의 값만 있습니다. 그러나 그래프에는 차수가 다른 노드 (예 : 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로부터 그것을 복사 할 수 있습니다. 그리고' 밀도 '를'밀도 '로 바꾼다. –

답변