Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的循环问题_R_Statistics - Fatal编程技术网

R中的循环问题

R中的循环问题,r,statistics,R,Statistics,我将使用下面的代码在R中生成一个从0.0到1.0的向量v 但是,v仅进入0.99 > s <- 0.0; v <- numeric(); > while ( s <= 1 ){ + v <- append(v, s) + s <- s + 0.01 + } > v [1] 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14 [16]

我将使用下面的代码在R中生成一个从
0.0
1.0
的向量
v

但是,
v
仅进入
0.99

> s <- 0.0; v <- numeric();
> while ( s <= 1 ){
+    v <- append(v, s)
+    s <- s + 0.01
+ }
> v
  [1] 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14
 [16] 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29
 [31] 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43 0.44
 [46] 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59
 [61] 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74
 [76] 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89
 [91] 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99
>
假定
s
应该是
1.01
,但它只转到
1

所以我们知道
s
1
,但为什么它不等于
1


(我是R新手,很抱歉问了个愚蠢的问题。)

为什么不使用内置的R函数
seq

> seq(0,1,.01)
  [1] 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14
 [16] 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29
 [31] 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43 0.44
 [46] 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59
 [61] 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74
 [76] 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89
 [91] 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.00

为什么不使用内置的R函数
seq

> seq(0,1,.01)
  [1] 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14
 [16] 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29
 [31] 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43 0.44
 [46] 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59
 [61] 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74
 [76] 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89
 [91] 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.00

当您试图将浮点值与非常精确的小数进行比较时,这种现象经常发生


在你的例子中,你试着比较1,实际上它比1大一点。因此,当您尝试与s进行比较时,当您尝试将浮点值与非常精确的小数进行比较时,这种现象经常发生


在你的例子中,你试着比较1,实际上它比1大一点。因此,当你试图与SBS进行比较时,因为我对R不太熟悉,所以我自己创建了它:通过“R简介”(IntroductiontoR)进行预演可能会对你有所帮助。当然要用
seq
来做这个。但是你能解释一下为什么
s@EricHo是的。因为
seq
大概是把一些稍微大于1/100的数字加起来100倍。结果和大于1。@Wilduck——为了使序列按照OP的预期运行,
(1:100)/100
(或
seq(1100,by=1)/100
)的效果会稍好一些。因为我对R不太熟悉,所以我自己创建了它:预编“R简介”(Introduction to R)可能会对您有所帮助。当然要用
seq
来做这个。但是你能解释一下为什么
s@EricHo是的。因为
seq
大概是把一些稍微大于1/100的数字加起来100倍。结果之和大于1。@Wilduck——为了让序列按照OP的预期运行,
(1:100)/100
(或
seq(1100,by=1)/100
)的效果会稍好一些。浏览FAQ的原因通常是值得的时间投资:浏览FAQ的原因通常是值得的时间投资: