Есть ли функция R для применения в опции фильтра в R блестящий - PullRequest
1 голос
/ 05 июля 2019

У меня есть код ниже. Мне нужно поместить основной фильтр в основную панель, чтобы я мог выбрать категории, которые, в свою очередь, должны изменить номера (резюме)

# faithful is the dataset
# Iris is the dataset
 iris$New <- ifelse(iris$Sepal.Width>2.5,"greater than 2.5","Not Greater 
 than 2.5")
library(shiny)

sample1 <- 1:3

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput(
        "x",
        "Operations",
        choices = c("summary","stem","typeof","mode","birth"), 
        multiple = TRUE,
        selectize = TRUE
      )
    ),
    mainPanel(
      h6("Here it is"),
      verbatimTextOutput("message")
    )
  )
)

server <- function(input, output, session) {
  output$message <- renderPrint({
    if(input$x == "summary"){
      summary(iris$Petal.Width)
    } else if (input$x == "stem"){
      print(stem(faithful$eruptions))
    } else if (input$x == "typeof"){
      typeof(sample1)
    } else if (input$x == "mode"){
      mode(sample1)
    } 
  }) 
}

shinyApp(ui, server)

Могу ли я иметь основной фильтр "Виды" из набора данных Iris. Когда я выбираю «сетоса», резюме должно меняться соответственно

1 Ответ

1 голос
/ 05 июля 2019

Если нам нужно изменить summary на основе значений 'Видов', используйте renderUI с uiOutput

sample1 <- 1:3
library(shiny)
ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(selectInput("x","Operations",choices = 
                               c("summary","stem","typeof","mode","birth"),
    multiple=FALSE,selectize = TRUE)),
    mainPanel(h6("Here it is"),
              verbatimTextOutput("message"),
              uiOutput("Species")
    )
  )
)
server <- function(input, output, session) {

  r1 <- reactive({

    if(input$x == "summary")
    {
      summary(iris$Petal.Width[iris$Species == input$Species])
    } else if (input$x == "stem")
    {
      print(stem(faithful$eruptions))
    } else if (input$x == "typeof")
    {
      typeof(sample1)
    } else if (input$x == "mode")
    {
      mode(sample1)
    } 
  }) 

output$message <- renderPrint({r1()})

  output$Species <- renderUI({

    selectInput("Species", "species", 
      choices = as.character(unique(iris$Species)), multiple = FALSE)
  })
}
shinyApp(ui, server)

-выход

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...