представляют значение selectInput в информационном поле на блестящей панели инструментов R

У данного блестящего сценария R есть selectInput и информационное поле ниже, я просто хочу отобразить выбранное значение в selectInput внутри информационного поля в пользовательском интерфейсе. Пожалуйста, помогите мне с решением и, если возможно, любезно избегайте любых сценариев на сервере, так как у меня есть дальнейшая зависимость. Если бы это можно было сделать в пользовательском интерфейсе, было бы здорово, спасибо.

## app.R ##
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(
box(title = "Data", status = "primary", solidHeader = T, width = 12,
      fluidPage(
        fluidRow(

          column(2,offset = 0, style='padding:1px;',
                 selectInput("select the 
input","select1",unique(iris$Species)))
        ))),
  infoBox("Median Throughput Time", iris$Species)))
server <- function(input, output) { }
shinyApp(ui, server)

SelectInput


person Adam Shaw    schedule 29.01.2018    source источник
comment
он должен быть на сервере, он должен просто использовать renderUI и ссылаться на input$select1   -  person zacdav    schedule 29.01.2018
comment
@zacdav, спасибо, что ответили, любезно помогите со скриптом, я это проверю.   -  person Adam Shaw    schedule 29.01.2018


Ответы (1)


Уловка состоит в том, чтобы убедиться, что вы знаете, где присваивается значение selectInput, в моем примере это selected_data, на это можно ссылаться в коде сервера, используя input$selected_data.

renderUI позволяет создавать динамический элемент, который может отображаться с uiOutput и выходным идентификатором, в данном случае info_box

## app.R ##
library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    box(title = "Data", status = "primary", solidHeader = T, width = 12,
        fluidPage(
          fluidRow(
            column(2, offset = 0, style = 'padding:1px;', 
                   selectInput(inputId = "selected_data",
                               label = "Select input",
                               choices = unique(iris$Species)))
            )
          )
        ),
    uiOutput("info_box")
    )
  )
# Define server logic required to draw a histogram
server <- function(input, output) {
   output$info_box <- renderUI({
     infoBox("Median Throughput Time", input$selected_data)
   })
}

# Run the application 
shinyApp(ui = ui, server = server)
person zacdav    schedule 29.01.2018
comment
@zacdev, большое спасибо за помощь, однако, как я уже упоминал о зависимости от дальнейших действий, у меня есть требование, когда один и тот же uiOutput должен быть реплицирован для нескольких вкладок, пожалуйста, проверьте этот вопрос и помогите мне с исправлением, если это возможно. Спасибо. - person Adam Shaw; 29.01.2018
comment
@AdamShaw, вы должны иметь возможность просто скопировать код и настроить ИЛИ добавить операторы if и else в вызов renderUI в зависимости от выбранной вкладки, это можно сделать - просто потребуется больше контекста о том, что делается. - person zacdav; 29.01.2018
comment
проверьте ссылку здесь, stackoverflow.com/questions/48496426/ - person Adam Shaw; 29.01.2018
comment
Я надеюсь, что это может внести большую ясность, в основном я использую shinyModules, поэтому хочу отобразить выбранное значение selectInput в shinywidget ниже. - person Adam Shaw; 29.01.2018