Я не могу понять, почему degree.distribution
не работает для меня. Я пробовал R i386 3.0.0 и R x64 3.0.0. Вот простой скрипт для создания графика и показать его распределение:R графа степень.распределение не работает
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]
.
Это ошибка: вы можете сообщить об этом автору пакета. Функция использует 'hist', результат которой имел поле' интенсивности ', но был удален в R 3.0.0 (вместо этого можно использовать 'плотность'). –
Спасибо! У меня было подозрение, что это может быть так. Запуск моего скрипта на R x64 2.15.2 работает отлично. – user1748601
Было сообщено и исправлено: https://bugs.launchpad.net/igraph/+bug/1164523 В качестве обходного решения укажите свою собственную функцию 'degree.distribution', очень простое, вы можете скопировать ее из igraph, а затем изменить' интенсивность '' плотность'. –