2014-07-22 147 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 –