Для этой меры мне всегда нужно только входящее дерево в вершину. Первой части я должен был бы рассчитать все кратчайшие пути к вершине и суммировать их по специальному пути, все с кратчайшимPath = 1 будет считаться как 1 все с кратчайшимPath = 2 будет считаться равным 1/2, все с shortestPath = 3 как 1/3 и так далее. Затем их следует суммировать до значения, которое мы теперь называем x. После того, как это будет сделано для полного графика, должна быть функция, которая принимает x и вычисляет x/sum (y) y будет вычисляться. Значения сверху минус тот, который мы сейчас работаем.Сложный граф Измерение энтропии в R
Мои исходные данные:
library(igraph)
From <- c(1,2,3,4,5,6,7,8)
To <- c(NA,1,2,3,2,NA,6,7)
Data <- data.frame(From,To)
Network <- graph.data.frame(Data[,c("From","To")],directed=TRUE)
Network<- Network - "NA"
plot(Network)
В конце концов, это должно выглядеть похоже на эту
From <- c(1,2,3,4,5,6,7,8)
To <- c(NA,1,2,3,2,NA,6,7)
ValueX<- c(2.333, 2.5, 1, 0, 0, 1.5, 1, 0)
FinalMeasure<- c(2.333/(2.5+1+0+0), 2.5/(2.333+1+0+0), 1/(2.333+2.5+0+0), 0/(2.333+2.5+1+0), 0/(2.333+2.5+1+0), 1.5/(1+0), 1/(1.5+0), 0/(1.5+1))
NewData<- data.frame(From,To, ValueX, FinalMeasure)
Моя первая идея была построить функцию с кластерами() и shortest.paths(), но я понятия не имею, как я могу это сделать.
Вопрос должен показать, что вы сделали добросовестную попытку решить эту проблему самостоятельно и не просто просят людей написать код для вас. Очень приятно иметь образец ввода и желаемый результат, что значительно облегчит тестирование возможных решений, но что вы пробовали до сих пор? Можете ли вы поделиться некоторыми из кода вашей попытки и быть понятным о том, что пошло не так? Кроме того, я предполагаю, что вы имеете в виду библиотеку 'igraph', а не' graph'. – MrFlick