R代码:当我打电话给我的功能时,我得到了NA

时间:2016-03-31 06:02:38

标签: r

当我调用我的功能时它显示NA?
虽然,当我发送不同的参数时,它可以工作。所以我的问题是,对于每次通话,有多少结果应该是一两次,为什么有时候我会得到NA。

这是我的代码:

trsp<-function(x,p,tr,mlo,mhi)
 {
  mm<-seq(mlo, mhi, length =101)
  w<-double(length (mm))
  for (k in 1:101)
  {
    xmm<-sort(abs((x-mm[k]))^p)
    w[k]<-sum(xmm[c(1:ceiling(tr*length(x)))])
  }
  mmw<-cbind(mm, w)
  plot(mmw)
  mmw[w<-min(w)]
 }  

dta<-rcauchy(23)

trsp(dta,1,1,0,1)
trsp(dta,2,1,0,1)
trsp(dta,1,0.6,0,1)
trsp(dta,2,0.6,0,1)
trsp(dta,0.5,0.6,0,1)

1 个答案:

答案 0 :(得分:1)

让我一步一步回答这个问题。

1)每次通话的结果应该是一两个?嗯,每次通话只会显示一个结果。原因在于,当我们cbind两个向量时,我们得到一个矩阵作为输出。在矩阵中,如果我们使用一个下标而不是两个下标,则输出类似于将矩阵转换为矢量并访问矢量元素后的输出。

2)为什么有时候我会得到NA?:据我所知,NA可能出现在w(等于min(w))的值增加2 * length(x)的情况下,其中x是在功能。