2014-02-16 1 views
0

У меня есть два одинаковых графика:Два одинаковых графов, продуцирующие другой локальный транзитивность

a<-graph.lattice(dimvector = 100, length = NULL, dim = NULL, nei = 5, 
       directed = FALSE, mutual = FALSE, circular = TRUE) 

b<-read.csv("https://dl.dropboxusercontent.com/u/22681355/graph2.csv",head=T,sep=';') 

b<-as.matrix(b) 
b<-graph.data.frame(b) 

Глядя на str(a) и str(b) показывает, что они являются идентичными сети. Теперь, когда я проверяю их локальную транзитивность, я получаю разные выходы.

transitivity(b, type=c("local")) 

[1] 0.1578947 

transitivity(a, type=c("local")) 

[1] 0.6666667 

Что вызывает разницу? Я делаю что-то неправильно?

+0

Какой пакет (ы) вы используете? –

+0

Я использую igraph – ghb

+0

Да, вы делаете что-то неправильно, два графика не совпадают. –

ответ

1

Эти два графика не идентичны; a неориентирован (так как вы так сказали), а b нет (поскольку вы не указали directed=FALSE в вызове graph.data.frame).

+0

, даже если я укажу direct = FALSE в графике.data.frame, локальная транзитивность по-прежнему равна 0.157 ... у вас что-то другое? – ghb

+0

Yup; 'transitable (a, type = c (" local "))' и 'transтивность (b, type = c (" local "))' оба дают мне вектор длиной 100, где каждый элемент равен 0.666667. Кроме того, обратите внимание, что ваш граф 'b' имеет 1000 ребер, в то время как' a' имеет только 500, так как ваш CSV-файл содержит список каждого края в обоих направлениях. Вероятно, вам не хватает 'b <- simplify (b)'. –

 Смежные вопросы

  • Нет связанных вопросов^_^