如果我使用 for 循环向前或向后搜索,则在搜索数组中的某个元素时会得到不同的答案。
示例:给出正确答案的代码
vg = rep(seq(0.9,1.1,0.01),90)
vals = seq(0.9,1.05,0.01)
for(val in vals){
idx = c()
idx = which((vg) %in% (val))
cat(val,":",length(idx),"\t")
}
此代码提供:0.9:90 0.91:90.92:90 0.93:90 0.94:90 0.95:90 0.96:90 0.95:90 0.98:90 0.97:90.98:90.99:90.98:90.99:90 1:90 1.01:90 1.02:90 1.03:90 1.04:90 1.05 : 90
哪个是对的。但是,如果我使用下面的代码更改上面的 vg 变量的序列:
vg = rep(seq(1.1,0.9,-0.01),90)
vals = seq(0.9,1.05,0.01)
for(val in vals){
idx = c()
idx = which((vg) %in% (val))
cat(val,":",length(idx),"\t")
}
我得到如下所示的答案,在搜索 0.96、0.97 等时显示 0 个元素。
0.9:0 0.91:0 0.92:0 0.93:90 0.94:90.95:90 0.96:0 0.97:0 0.98:0 0.99:0 1:90 1.01:90 1.02:90 1.03:90 1.04:90 1.05:90 1.04:90 1.05
为什么会出现这种差异,因为我们在两个代码中搜索完全相同的元素?这是一个R错误吗?