2015-05-12 4 views
0

Я работаю над проблемой, чтобы найти меры, связанные с структурными отверстиями в R. Проблема заключается в том, что при применении кода ниже для сохранения матрицы смежности переменной переменной x что источник) Adjacency matrix in R он дает мне ошибку, как:структурные дыры и матрица смежности

"ошибка в as.data.frame.default (г): не может принуждать класс "" igraph" "к data.frame"

Мой код и набор данных выглядит так: a data frame

s1 
    uid1 uid2  
1  1 2  
2  1 3  
3  1 4  
4  1 5  
5  2 3 
6  2 4  
7  2 5  
8  3 4  
9  3 5  
10 4 5 
11 6 7  
12 6 8  
13 6 9  
14 7 8  
15 7 9  
16 8 9  
17 1 6 
18 1 7 
19 6 7 

Когда я применяю этот код, то ошибка становится над здесь

x <- get.adjacency(graph.data.frame(graph.edgelist(as.matrix(s1), directed=F))) 

Ошибка в as.data.frame.default (D): не может принуждать класс "" igraph "" в data.frame

Таким образом, любая помощь, чтобы использовать этот код для структуры отверстия измерения как

y <- index.egonet(x) #desired output is this code 
+0

Вы переходите от data.frame к матрице к edgelist к графику. Просто перейдите data.frame -> graph. 'x <- get.adjacency (graph.data.frame (s1, direct = F))' – thelatemail

+0

yep это работает, но когда я применяю этот код, он дает мне эту ошибку сейчас index.egonet (x) Ошибка в intI (i , n = d [1], dn [[1]], give.dn = FALSE): Недопустимое кодирование символов –

ответ

0

Вы собираетесь

data.frame (s1)    --> 
    matrix      --> 
    graph via graph.edgelist --> 
     trying to create a graph again via graph.data.frame 

И именно поэтому вы получаете сообщение об ошибке, потому что у вас уже есть график, и graph.data.frame() ожидает data.frame в качестве входных данных, а не igraph объекта. Вот что говорит сообщение об ошибке:

Ошибка в as.data.frame.default (г): не может принуждать класс "" igraph "" в data.frame

Ie - «Дон «т дать мне„igraph“объект, я хочу data.frame»

конечный вывод все это - просто идти от источника data.frame к igraph объекта, а затем извлечь матрицу смежности:

get.adjacency(graph.data.frame(s1, directed=F)) 
+0

Ваше предложение выше, но когда я применяю index.egonet к матрице смежности (X), это дает мне error.like index.egonet (x) Ошибка в intI (i, n = d [1], dn [[1]], give.dn = FALSE): неправильная индексация символов –

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