为什么“替换长度为零”'以及如何在R中为我的代码修复它?

时间:2018-02-09 15:54:24

标签: r

对于R中的生态模式的最近邻分析,我的代码如下:

data1<-read.table("large.txt")
attach(data1)

x4<-(V1)
y4<-(V2)

r4<-numeric(133)   
nn4<-numeric(133)
d4<-numeric(133)

for(i in 1:133){
  d4<-0
  for(k in 1:133){
     d4[k]<-dist(x4[i],y4[i],x4[k],y4[k])    
     r4[i]<-min(d4[-i])    
    nn4[i]<-which(d4==min(d4[-i]))    
  }
}

出现的结果是:

Error in nn4[i] <- which(d4 == min(d4[-i])) : replacement has length zero

任何人都可以解释我如何修复我的代码/更换长度&#39;为零? 感谢

1 个答案:

答案 0 :(得分:0)

当函数which(d4==min(d4[-i]))没有提供匹配时,您会收到此错误。

尝试这样的事情:

ifelse((sum(d4==min(d4[-i])==0)), NA, which(d4==min(d4[-i])))