2013-10-01 71 views
1

我不知道爲什麼我不能使用R腳本igraph再有任何以前工作。如果你能幫助我,我將不勝感激。我這裏使用的腳本是:igraph - 不正確的維數警告:堆棧不平衡

庫(IGRAPH)

矩陣1 < -as.matrix(數據)

矩陣1

 var1 var2 var3 var4 var5 var6 var7 var8 
[1,] 1.00 0.04 0.21 0.39 0.06 0.37 0.03 0.44 
[2,] 0.04 1.00 0.34 0.36 0.63 0.25 0.66 0.18 
[3,] 0.21 0.34 1.00 0.44 0.41 0.57 0.72 0.62 
[4,] 0.39 0.36 0.44 1.00 0.28 0.14 0.51 0.10 
[5,] 0.06 0.63 0.41 0.28 1.00 0.50 0.73 0.39 
[6,] 0.37 0.25 0.57 0.14 0.50 1.00 0.50 0.65 
[7,] 0.03 0.66 0.72 0.51 0.73 0.50 1.00 0.52 
[8,] 0.44 0.18 0.62 0.10 0.39 0.65 0.50 1.00 

graph.adjacency(矩陣1,模式='無向',加權= TRUE)

「然後我得到以下錯誤消息」 在d

錯誤[I,]:尺寸的不正確的數字 警告: '.CALL' 堆疊不平衡,51然後50

下面的更多信息:

> str(matrix1) 
num [1:8, 1:8] 1 0.04 0.21 0.39 0.06 0.37 0.03 0.44 0.04 1 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr [1:8] "var1" "var2" "var3" "var4" ... 

> sessionInfo() 
R version 3.0.2 (2013-09-25) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252 
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C      
[5] LC_TIME=English_Australia.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] igraph_0.6.5-2 

loaded via a namespace (and not attached): 
[1] colorspace_1.2-4 dichromat_2.0-0 digest_0.6.3  ggplot2_0.9.3.1 
[5] grid_3.0.2   gtable_0.1.2  labeling_0.2  lattice_0.20-23 
[9] MASS_7.3-29  Matrix_1.0-14  mgcv_1.7-26  munsell_0.4.2  
[13] nlme_3.1-111  plyr_1.8   proto_0.3-10  RColorBrewer_1.0-5 
[17] reshape2_1.2.2  scales_0.2.3  stringr_0.6.2  tools_3.0.2  

> traceback() 
4: c(list(), list(logical(0))) 
3: .Call("R_igraph_weighted_adjacency", adjmatrix, as.numeric(mode), 
     weighted, diag, PACKAGE = "igraph") 
2: graph.adjacency.dense(adjmatrix, mode = mode, weighted = weighted, 
     diag = diag) 
1: graph.adjacency(matrix1, mode = "undirected", weighted = TRUE) 

謝謝!

+0

我的猜測是,當你構造'矩陣1'矩陣或'數據'時你犯了一個錯誤。請包括該代碼。 –

+0

@GaborCsardi感謝您的評論。我使用瞭如上所示的相關表。這是我使用的矩陣。我在這裏做錯了什麼? – Young

+0

再次,我們看不到您的代碼。我知道這是你的矩陣,但這不能替代創建它的代碼。也許在矩陣對象中有一些我們在這裏沒有看到的東西。看到http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

回答

1

下面的工作適合我與igraph 0.6.5-2,R 3.0.1,OSX獅子,所以請包括一些自包含代碼,再現你的問題,也是你的igraph和R版本和平臺。謝謝。

matrix1 <- as.matrix(read.table(header=TRUE, textConnection(" 
var1 var2 var3 var4 var5 var6 var7 var8 
1.00 0.04 0.21 0.39 0.06 0.37 0.03 0.44 
0.04 1.00 0.34 0.36 0.63 0.25 0.66 0.18 
0.21 0.34 1.00 0.44 0.41 0.57 0.72 0.62 
0.39 0.36 0.44 1.00 0.28 0.14 0.51 0.10 
0.06 0.63 0.41 0.28 1.00 0.50 0.73 0.39 
0.37 0.25 0.57 0.14 0.50 1.00 0.50 0.65 
0.03 0.66 0.72 0.51 0.73 0.50 1.00 0.52 
0.44 0.18 0.62 0.10 0.39 0.65 0.50 1.00 
"))) 

graph.adjacency(matrix1, mode='undirected', weighted=TRUE) 
# IGRAPH UNW- 8 36 -- 
# + attr: name (v/c), weight (e/n) 
+0

我用你的腳本上面。但沒有奏效。我仍然收到相同的錯誤信息。我還用這個腳本來複制和粘貼表格:data <-read.delim(「clipboard」)。但是也沒有工作。 我使用R-3.0.2和igraph0.6.5-2 Windows7。謝謝。 – Young

+0

我不明白你爲什麼要使用'read.delim'。只需將代碼複製並粘貼到R.我懷疑是因爲將標題行放入矩陣中,所以創建的行數多於列的非方形矩陣。您可以運行'dim(matrix1)'來檢查矩陣的尺寸。它必須是一個鄰接矩陣的方陣。順便說一句。我嘗試了Windows上的代碼,並且工作正常。 –

+0

dim(matrix1)給了我這個:[1] 8 8.列和行具有相同的編號。我仍然得到「在d [i,]中的錯誤:不正確的維數警告:'.Call',49然後48」堆棧不平衡。爲什麼? – Young

0

我需要刪除所有對象。

輸入rm(list=ls())

然後,我使用上面的R腳本應該工作。