我创建了函数dystdystryb:

dyst<- function(t,x)
{
  f<-1
  return(f)
}
dystryb<- function(x)
{
  x<-sort(x)
  s<- numeric(101)
  u<-seq(0,1, by = 0.01)
  for (t in u)
  {
    s[t*100+1]<-dyst(t,x)
  }
  return(s)
}

调用函数dystryb后,我得到以下信息:
> x<-c(1,2,3,4,5,6,7)
> dystryb(x)
  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [51] 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[101] 1

为什么此函数不适用于参数30和59?当然,这与创建向量为“1”的函数无关,但是我想弄清楚问题出在哪里。

最佳答案

下面准确地显示了发生的情况,由于浮点精度错误,您将在位置15、29,...处为零。

which(seq(0,1, by = 0.01)*100+1 != 1:101)
# [1] 15 29 30 56 57 58 59

关于r - 在r中建立索引,并指出一些问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41440178/

10-12 16:34