Передача меток для выбора и возврата значений для функций сервера

Я хочу передать различные метки selectizeInput в Shiny. Затем я хочу, чтобы пользовательский ввод от selectize передавал закодированное значение параметра в функцию. У меня есть коды параметров и метки, хранящиеся в кадре данных. Таким образом, я должен иметь возможность доступа к полю параметра во фрейме данных, используя оператор логического соответствия на метках. Тем не менее, мне кажется, что я получаю только номер строки, а не фактический код параметра. Кроме того, несколько вариантов выбора не отображаются.

Смотрите пример ниже:

library(shiny)
library(dplyr)

dropdown_A<-as.data.frame( cbind(labels = c("red", "white", "blue"), parameter = c(800, 72, 9048)))
dropdown_B<-as.data.frame( cbind(labels = c("green", "purple", "orange"), parameter = c("xyz","def","abc")))

shinyApp(
  ui = fluidPage(
    fluidRow(
      wellPanel(
        selectizeInput("A", label = p("Select a color"), choices = as.character(dropdown_A$labels), multiple = TRUE),
        selectizeInput("B", label = p("Select another color"), choices = as.character(dropdown_B$labels), multiple = TRUE))),
    fluidRow(verbatimTextOutput("Value_A")),
    fluidRow(verbatimTextOutput("Value_B"))),
  server = function(input, output, session){
    A<-reactive({ 
      if (is.null(input$A))
        return ("Please select a color")
      else (dropdown_A %>% filter(labels == input$A)%>% select(parameter))
    })   
    B<-reactive({ 
      if (is.null(input$B))
        return ("Please select another color")
      else (dropdown_B %>% filter(labels == input$B)%>% select(parameter))
    })  
    output$Value_A<-renderText({
      as.character(A())
    })
    output$Value_B<-renderText({
      as.character(B())
    })
  }
)
4 голоса | спросил SamanthaDS 30 PMpThu, 30 Apr 2015 22:56:58 +030056Thursday 2015, 22:56:58

1 ответ


0

Хорошо, я думаю, это то, что вы хотите. Я изменил сравнение ваших фильтров на включение и способ печати ваших data.frames.

library(shiny)
library(dplyr)

dropdown_A<-as.data.frame( cbind(labels = c("red", "white", "blue"), parameter = c(800, 72, 9048)))
dropdown_B<-as.data.frame( cbind(labels = c("green", "purple", "orange"), parameter = c("xyz","def","abc")))

shinyApp(
  ui = fluidPage(
    fluidRow(
      wellPanel(
        selectizeInput("A", label = p("Select a color"), choices = as.character(dropdown_A$labels), multiple = TRUE),
        selectizeInput("B", label = p("Select another color"), choices = as.character(dropdown_B$labels), multiple = TRUE))),
    fluidRow(verbatimTextOutput("Value_A")),
    fluidRow(verbatimTextOutput("Value_B"))),
  server = function(input, output, session){
    A<-reactive({ 
      if (length(input$A)==0)
        return ("Please select a color")
      else (dropdown_A %>% filter(labels %in% input$A)%>% select(parameter))
    })   
    B<-reactive({ 
      if (length(input$B)==0)
        return ("Please select another color")
      else (dropdown_B %>% filter(labels %in% input$B)%>% select(parameter))
    })  
    output$Value_A<-renderPrint({
      print(A())
    })
    output$Value_B<-renderPrint({
      print(B())
    })
  }
)

введите описание изображения здесь

ответил Mike Wise 1 Mayam15 2015, 02:29:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132