我知道要获取最接近0的值,我可以使用以下代码:
filter(abs(x-0)==min(abs(x-0)))
...以x
为载体。如何检索最接近两个值的0?
答案 0 :(得分:1)
tt <- sample(-200:200, 20)
tt[order(abs(tt), decreasing = F)][1:2]
喜欢吗?
答案 1 :(得分:1)
您不能只使用sort()
吗?
set.seed(1)
x <- rnorm(10)
sort(abs(x-0))[1:2]
#> [1] 0.1836433 0.3053884
由reprex package(v0.2.1)于2019-01-28创建
我也认为-0
不会为您做任何事情,因此可以abs(x)
做。
答案 2 :(得分:1)
这是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)