首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dplyr进行动态过滤

问使用dplyr进行动态过滤
EN

Stack Overflow用户
提问于 2020-05-27 20:51:29
回答 1查看 110关注 0票数 1

对于一个闪亮的应用程序中的所有数字字段,我会动态添加一个滑块。现在,我还想为基于滑块输入的数据添加一个动态过滤器。

为了说明这个问题,一些带有数据和静态过滤的代码:

代码语言:javascript
复制
library(glue)
library(tidyverse)
data <-
  tibble(
    a = c(61, 7, 10, 2, 5, 7, 23, 60),
    b = c(2, 7, 1, 9, 6, 7, 3, 6),
    c = c(21, 70, 1, 4, 6, 2, 3, 61)
  )

input <- list("a" = c(2, 10),
              "b" = c(7, 10),
              "c" = c(1, 5))


data %>% filter(
  between(a, input$a[1], input$a[2]),
  between(b, input$b[1], input$b[2]),
  between(c, input$c[1], input$c[2])
)

有没有办法实现动态过滤?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-27 20:51:29

我为自己构建了一个动态过滤器,它基本上是有效的:

代码语言:javascript
复制
query <- data %>% filter_if(is.numeric) %>% colnames() %>% map( function(feature){
  "between({
    feature
  }, input${
    feature
  }[1], input${
    feature
  }[2])" %>% glue()
}) %>% paste0(collapse = ", ")

eval(parse(text = "data %>% filter({
  query
})" %>% glue()))

有没有什么办法?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62043555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档