2014-09-25 89 views
0

我想分析R中使用bipartite和statnet套件(由網絡,sna和其他幾個包組成)在R中的加權1模式投影一個Unix服務器。使用二分矩陣和矩陣代數的混合,投影效果很好,但是當我嘗試將值矩陣作爲加權網絡對象導入時,使用下面的代碼,我似乎放棄了原始矩陣中的值。使用Statnet包導入加權鄰接矩陣R

MNDocnet<-as.network(MNDocmatrix,matrix.type="adjacency",directed=FALSE, hyper=FALSE, loops=TRUE, multiple=FALSE, bipartite = FALSE, ignore.eval=FALSE, names.eval="patients") 

感謝您提供任何幫助。

回答

1

很難確切地知道沒有您的數據結構,但該語法對我來說看起來是正確的。下面是一個例子

化妝樣品輸入數據

> adjmat<-matrix(c(0,1,2,3,0,4,5,6,0),ncol=3) 
> adjmat 
    [,1] [,2] [,3] 
[1,] 0 3 5 
[2,] 1 0 6 
[3,] 2 4 0 

轉換矩陣進網絡對象

> test<-as.network(adjmat,matrix.type='adjacency',ignore.eval=FALSE,names.eval='sample') 

爲屬性打印邊緣值命名爲 '樣本'

> test%e%'sample' 
[1] 1 2 3 4 5 6 

注意,如果你想把它轉換回一個有價值的矩陣,你需要給它的屬性provi的名稱丁值:

> as.matrix(test) 
    1 2 3 
1 0 1 1 
2 1 0 1 
3 1 1 0 

> as.matrix(test,attrname='sample') 
    1 2 3 
1 0 3 5 
2 1 0 6 
3 2 4 0