为什么"c"在这里等于1000?

Why "c" is equal to 1000 here?

这个循环遍历 range(92:1000)i 的所有值,无论 i 的哪个值保持条件为真,它都会通过设置 i 的值来打破循环=13=] 在 c 中,当我尝试 运行 R 语言中的这个代码块时,它给了我 c=1000。

> c=0
> for (i in range(92:1000)){
+     if(dpois(i,94.32)<=dpois(5,94.32))
+         {c=i;
+         break;
+         }
+ }
> c
[1] 1000

但我期望它应该给出 c=235 在 i=235 时的值:--

> dpois(235,94.32)
[1] 2.201473e-34
> dpois(5,94.32)
[1] 6.779258e-34
> dpois(235,94.32)<=dpois(5,94.32)
[1] TRUE

只要条件第一次为真,它就会中断。

我哪里错了?

在 R 中,range 计算给定数据的范围,即最小值和最大值

> range(92:1000)
[1]   92 1000

此外,使用 c 作为变量名在 R 中是非常糟糕的做法。因为 c 是用于定义向量的内部函数。

下面给出了预期的答案

> c0=0
>  for (i in 92:1000){
+        if(dpois(i,94.32)<=dpois(5,94.32))
+              {
+          
+              c0=i
+              break
+              
+              }
+    }
> c0
[1] 234