gpt4 book ai didi

r - 是否有一个函数与 close() 的关系相当于 %in% 与 == 的关系?

转载 作者:行者123 更新时间:2023-12-01 07:44:53 24 4
gpt4 key购买 nike

我有一个带有数字列x的data.frame或tibble:

library(dplyr)
data <- tibble(x = c(0.123456, 0.5678910, 1.234567, 5.67891011, 12.345678),
y = c(1, 2, 3, 4, 5))

为了过滤 x 接近一组值(具有给定容差,例如 1e-4)的行,例如c(0.5679, 5.6789)。我会使用这样的东西:

data %>% filter(near(x, 0.5679, 1e-4) | near(x, 5.6789, 1e-4))
#> # A tibble: 2 x 2
#> x y
#> <dbl> <dbl>
#> 1 0.568 2
#> 2 5.68 4

如果我有一个包含 100 个元素的向量,而不是 c(0.5679, 5.6789),这会变得冗长......那么,是否有一个函数可以编写类似以下内容的函数:

data %>% filter(near_any(x, c(0.5679, 5.6789), tol = 1e-4))

换句话说,是否有一个函数与 near() 的关系相当于 %in%== 的关系?

(我可以编写这样一个 near_any() 函数,但在我想检查一个函数是否尚不存在之前)

由 reprex 软件包 (v0.2.0) 于 2018 年 7 月 10 日创建。

最佳答案

在 dplyr 中它不存在,在基本 R 中很可能不存在。如果您询问其他软件包,则超出了 SO 的范围。

但你可以这样做:

data %>%
filter(Reduce(`|`,lapply(c(0.5679, 5.6789), near, x= x, tol = 1e-4)))

# # A tibble: 2 x 2
# x y
# <dbl> <dbl>
# 1 0.567891 2
# 2 5.678910 4

或者在 tidyverse 语言中也使用 purrr 包:

data %>%
filter(reduce(map(c(0.5679, 5.6789), near, x= x, tol = 1e-4),`|`))

关于r - 是否有一个函数与 close() 的关系相当于 %in% 与 == 的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51260793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com