从 R Shiny 中的选定输入中过滤

Posted

技术标签:

【中文标题】从 R Shiny 中的选定输入中过滤【英文标题】:Filtering from selected input in R shiny 【发布时间】:2021-01-02 11:18:49 【问题描述】:

尝试根据所选输入过滤数据库时,我不断收到错误消息。我根据 iris 数据集做了一个非常简单的例子来告诉你们我的问题:


    ```r
    library(flexdashboard)
    library(tidyverse)
    ```
    
    Sidebar .sidebar
    =====================================
    
    ```r
    
    fluidRow(
      column(7,
             selectInput("Species", "Choose a species",
                         choices = c("setosa", "versicolor", "virginica"))))
    
    mydata <- reactive(
    iris %>% filter(Species == input$Species)
    )
    
    ```
    
    Results
    ===================================== 
    
    ```r
    head(mydata)
    ```

【问题讨论】:

mydata 是一个响应式,因此必须使用 mydata() 评估它 嗯,我不知道我明白了,你能把代码写下来吗? 【参考方案1】:

由于mydata 是反应式,您必须在反应式上下文中使用mydata() 评估它(例如renderDT)。有关详细信息,请参阅 flexdashboard with shiny 和 a shiny tutorial。

---
title: "test"
runtime: shiny
output:
  flexdashboard::flex_dashboard:
  orientation: columns
vertical_layout: fill
theme: bootstrap
---
  

    ```r global, include = FALSE
    
    library(flexdashboard)
    library(tidyverse)
    library(DT)
    
    ```
    
    Sidebar .sidebar
    =====================================
    
    ```r
    
    fluidRow(
      column(7,
             selectInput("Species", "Choose a species",
                         choices = c("setosa", "versicolor", "virginica"))))
    
    mydata <- reactive(
    iris %>% filter(Species == input$Species)
    )
    
    ```
    
    Results
    ===================================== 
    
    ```r
    renderDT(head(mydata()))
    ```

【讨论】:

好的,非常感谢您的帮助。但是,如果不是像我的示例那样显示数据集,而是使用它进行更多分析,例如计算 Sepal.Lenght mean(mydata$Sepal.Lenght) 的平均值,我该怎么做? 再次,在反应式上下文中使用mydata()$Sepal.Length,例如一个反应:new_data &lt;- reactive(mean(mydata()$Sepal.Lenght))。看看我链接的教程 再次感谢您,非常感谢。

以上是关于从 R Shiny 中的选定输入中过滤的主要内容,如果未能解决你的问题,请参考以下文章

根据 r shiny 中的选定类别创建图表饼图

R Shiny中的SelectizeInput过滤

如何使用 actionButton 更改 R Shiny 中 selectInput 上的选定值?

根据 R Shiny 中的其他选择动态更新两个 selectInput 框

在R Shiny中过滤rhandsontable中的行

更新 R Shiny 中的 DT 列过滤器选择