r语言 - 如何找到多个接近另一个值的值



我知道要检索最接近 0 的值,我可以使用以下内容:

filter(abs(x-0)==min(abs(x-0)))

。以x为载体。如何检索最接近 0 的两个值?

这是一个dplyr版本;您可以使用top_n来获取某些字段的n最小(或最大)值:

df = data.frame(x = runif(100, -1, 1))
df %>%
  mutate(dist.from.0 = abs(x - 0)) %>%
  top_n(-2, dist.from.0)
tt <- sample(-200:200, 20)
tt[order(abs(tt), decreasing = F)][1:2]

诸如此类?

你不能

只用sort()吗?

set.seed(1)
x <- rnorm(10)
sort(abs(x-0))[1:2]
#> [1] 0.1836433 0.3053884

创建于 2019-01-28 由 reprex 软件包 (v0.2.1)

我也不认为-0为你做任何事情,所以可以做abs(x).

最新更新