我记得过去曾经遇到过这个问题,但是我找不到解决办法。
对于具有数字列a
的数据框,我想找到其a = 27.99
所在的行。查看数据框,我知道第100行就是这种情况。
所以:
> df$a[100]
27.99
> df$a[100] == 27.99
FALSE
> which(df$a == 27.99)
integer(0)
> is.numeric(df$a[100])
TRUE
我记得这可能与机器精度有关。
答案 0 :(得分:0)
可能是浮点问题,请尝试:
which(round(df$a) == 28)
请参阅:floating point issue in R? 这也有非常详尽的解释:Why are these numbers not equal?