Flexdashboard: создайте реактивный кадр данных на основе выпадающих входов - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь создать фрейм данных, содержимое которого изменяется на основе входных данных пользователя панели мониторинга. Я настроил пустой фрейм данных и входные данные следующим образом:

selectInput("ai_issue", 
            label = "Select Issue Area:",
            choices = c("Environment",
                        "Human rights",
                        "Refugee relief"))

beta <- as.data.frame(matrix(rep(0), nrow = 3))
beta$levels = c("Environment", "Human Rights", "Refugee Relief")

Я хочу закодировать фрейм бета-данных так, чтобы, если пользователь выбирает «Среда» из выпадающего списка объекта ai_issue, соответствующая ячейка во фрейме бета-данных изменится на 1. Кто-нибудь знает, как это сделать?

1 Ответ

2 голосов
/ 07 февраля 2020

В этом примере используется multiple для inputSelect, поэтому вы можете указать один или несколько вариантов выбора.

A reactive Функция установит переменную вашего фрейма данных в зависимости от выбора input.

Я надеюсь, что это поможет вам начать. Если это не то, что вы имели в виду, пожалуйста, дайте мне знать.

library(shiny)

beta <- data.frame(
  value = c(0,0,0),
  levels = c("Environment", "Human Rights", "Refugee Relief")
)

ui <- fluidPage(
  fluidRow(
    column(6,
      selectInput("ai_issue", 
                  label = "Select Issue Area:",
                  choices = beta$levels,
                  multiple = TRUE)
    ),
    column(6,
      tableOutput("data")
    )
  )
)

server = function(input, output) {

  df <- reactive({
    beta$value[beta$levels %in% input$ai_issue] <- 1
    beta
  })

  output$data <- renderTable({
    df()
  })
}

shinyApp(ui, server)
...