为什么"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
这个循环遍历 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