因此,我尝试从数据框 df 中获取 a 列中的值,即 b 列的第 90 个百分位。我使用以下代码来获取分位数的值:
p = quantile(df$b, c(0.9))
Run Code Online (Sandbox Code Playgroud)
之后,我想用它来获取该值的行号,以便我可以使用它来获取a列中的相应值:
which(df$b == p)
Run Code Online (Sandbox Code Playgroud)
但由于某种原因它只给出了输出
integer(0)
Run Code Online (Sandbox Code Playgroud)
我用实际值 1.68 替换了变量 p,它起作用了,并且创建另一个仅包含 1.68 的变量也起作用,但将它与分位数的结果一起使用永远不会给出正确的值。
我尝试过使用as.numeric、 使用p[[1]]和as.double。结果没有任何改变。对于理解为什么会发生这种情况以及是否有其他方法可以解决此问题,我们将不胜感激。
编辑:为了澄清,有一些条目恰好位于第 90 个百分位数,并且使用分位数函数返回的硬编码值将返回这些条目。当我们使用分位数的输出时,问题出现在which函数中。