错误消息`[< -`(`* tmp *`,i,j,value = 0)中的错误:下标超出范围

时间:2014-07-22 07:29:50

标签: r dataframe

我正在使用像

这样的代码
 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

它给了我一个错误(上图)我无法找到它的解决方案。非常感谢任何建议。提前谢谢

1 个答案:

答案 0 :(得分: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) 即可。