检查向量 R 中是否存在元素
Check if element exists in vector R
我正在与 R 的一些奇怪行为作斗争。有人可以解释发生了什么吗?
在下面的示例中,check
在第一个示例中为 false,在第二个示例中为 true。为什么 seq
与 c
不同?
by <- 0.1
percentage <- 60
probs <- seq(0,1,by)
checkValues <- probs * 100
check <- percentage %in% checkValues
probs <- c(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1)
checkValues <- probs * 100
check <- percentage %in% checkValues
它变得更奇怪了,好像我设置 by <- 0.25
和 percentage <- 75
两个 check
都是真的
您已成为 floating point error 的受害者:
p1 <- seq(0,1,0.1)
p2 <- c(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1)
> identical(p1, p2)
[1] FALSE
> all.equal(p1, p2)
[1] TRUE
我正在与 R 的一些奇怪行为作斗争。有人可以解释发生了什么吗?
在下面的示例中,check
在第一个示例中为 false,在第二个示例中为 true。为什么 seq
与 c
不同?
by <- 0.1
percentage <- 60
probs <- seq(0,1,by)
checkValues <- probs * 100
check <- percentage %in% checkValues
probs <- c(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1)
checkValues <- probs * 100
check <- percentage %in% checkValues
它变得更奇怪了,好像我设置 by <- 0.25
和 percentage <- 75
两个 check
都是真的
您已成为 floating point error 的受害者:
p1 <- seq(0,1,0.1)
p2 <- c(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1)
> identical(p1, p2)
[1] FALSE
> all.equal(p1, p2)
[1] TRUE