2014-07-22 146 views
0

我使用像錯誤消息錯誤:下標出界

df2<-df[1:3000,] 

tail(df2) 
df4<-(table(df2)>0)*1 
dim(df4) 
m.adj<-matrix(0,nc=1:5217,nr=5217) 
for(i in 1:5215){ 
    for(j in (i+1):5216){ 
    m.adj[i,j]<-sum(df2[,i]*df2[,j]) 
    } 
} 
Error in `[<-`(`*tmp*`, i, j, value = NA_integer_) : 
    subscript out of bounds 

一個代碼的它給我一個錯誤(上圖)我無法找到它的解決方案。任何建議將高度讚賞。在此先感謝

+0

請用文字描述你在這裏要做什麼。那麼我們會更好地幫助你。 – Andrie

+0

@ Andrie先生,我試圖找到用戶在一個交叉表中的程度中心性由0和1組成(0表示沒有評論文章,1表示評論文章,但在運行igraph包之前,它給了我錯誤,我希望我解釋得很好。 –

回答

0

此錯誤告訴您,您嘗試在m.adj中獲取的下標超出了此matrix的大小。

m.adj大小是5217,X 1,因爲以這種方式定義的:m.adj<-matrix(0,nc=1:5217,nr=5217)而應該以這種方式來定義:

m.adj<-matrix(0,nc=5217,nr=5217) 

因爲參數nc必須是一個整數,而不是陣列整數。否則,它需要數組的第一個元素。這裏是一個。

因此,你只需要把你的代碼m.adj<-matrix(0,nc=5217,nr=5217) ,它應該工作!

+0

先生我該如何解決這個問題? –

+0

不要叫我先生;)請您寄出dim(df2)'的結果嗎? – Pop

+0

dim(df2)89 5216 –