Не все данные варианты выбора selectInput показаны блестящим R - PullRequest
0 голосов
/ 28 марта 2019

У меня проблема с очень простым Shiny приложением.Кажется, есть ограничение на число selectInput вариантов, которые я могу иметь, только с 6-ю ответами на вопрос e: Наркотики.Я ожидал большего выбора, но как бы я ни говорил, результат будет одинаковым.

Я предоставляю весь код здесь

library(tidyverse)
library(shiny)
library(rsconnect)

ui <- fluidPage(

  # Sidebar layout with a input and output definitions 
  sidebarLayout(

    # Inputs
    sidebarPanel(

      # Select variable for crtieria 1
      selectInput(inputId = "a", 
                  label = "Delay from initial drug component intake to onset of reaction (index day)",
                  choices = c("From 5 to 28 days"=3, "From 29 to 56 days"=2, "From 1 to 4 days"=1, ">56 Days"=-1, "Drug started on or 
after the index day"=-3), 
                  selected = "From 5 to 28 days"),

      #select variable for criteria 2
      selectInput(inputId = "b", 
                  label = "Drug present in the body on index day",
                  choices = c("Drug continued up to index day or stopped at a time point less than five times the elimination half-life before the index day"=0,
                              "Drug stopped at a time point prior to the index day by more than five times the elimination half-life but liver or kidney function alterations or suspected drug interactions are present"=-1,
                              "Drug stopped at a time point prior to the index day by more than five times the elimination half-life, without liver or kidney function alterations or suspected drug interactions"=-3), 
                  selected = "Drug continued up to index day or stopped at a time point less than five times the elimination half-life before the index day"),
     #criteria 3
       selectInput(inputId = "c", 
                  label = "Prechallenge-rechallenge",
                  choices = c("SJS-TEN after use of same drug"=4,
"SJS-TEN after use of similar drug or other reaction with same drug"=2,
"Other reaction after use of similar drug"=1, "No known previous exposure to this drug"=0, "Exposure to this drug without any reaction (before or after reaction)"=-2), 
                  selected = "SJS-TEN after use of same drug"),

#criteria 4
selectInput(inputId = "d", 
            label = "Dechallenge",
            choices = c("Drug stopped (or unknown)"=0,
                        "Drug continued without harm"=-2),
                        selected = "Drug stopped (or unknown)"),     

selectInput(inputId = "e",
            label = "Drug",
            choices = c("5-FU" = 0, "abacavir" = 0, "acamprosate" = 0, "acarbose" = 0, "aceclofenac" = 1, "acemetacin" = 0, "acepromazine" = 0, "aceprometazine" = 0, "acetylcysteine" = 1, "acetyldigoxin" = 0, "acetylsalicylic acid (aspirin)" = -1, "aciclovir" = 1),
            selected = "5-FU"), 

#criteria 6
selectInput(inputId = "f", 
            label = "Other cause",
            choices = c("At least one other druf with score >3"=-1,"No other drug with score >3"=0),
            selected = "At least one other druf with score >3")
      ),

    # Outputs
    mainPanel(
      textOutput(outputId = "ALDEN")
    )
  )
)

# Define server function required to create the scatterplot
server <- function(input, output) {

  # print result
  output$ALDEN <- renderPrint({
    paste0("ALDEN score = ",as.numeric(input$a)+as.numeric(input$b)+as.numeric(input$c)+as.numeric(input$d)+as.numeric(input$e)+as.numeric(input$f))
  })
}

# Create a Shiny app object
shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 28 марта 2019

Это не ошибка, вы используете повторяющиеся значения в качестве выбора. В основном ваш выбор для selectInput(inputId = "e", ...) является вектором со следующими значениями: c(0,0,0,0,1,0,0,0,1,0,-1,1). selectInput разбивает варианты выбора на вектор c(0,1,-1), что приводит только к трем видимым параметрам выбора.

Я не уверен, почему невозможно показать повторяющиеся варианты. Но вы можете установить опцию selectize в FALSE, и все опции будут работать. Это, однако, изменит внешний вид выпадающего меню.

selectInput(inputId = "e",
                  selectize = FALSE,
                  label = "Drug",
                  choices = 
                    c("5-FU" = 0, "abacavir" = 0, "acamprosate" = 0, "acarbose" = 0, "aceclofenac" = 1, "acemetacin" = 0, "acepromazine" = 0, "aceprometazine" = 0,
                              "acetylcysteine" = 1, "acetyldigoxin" = 0, "acetylsalicylic acid (aspirin)" = -1, "aciclovir" = 1),
                  selected = "5-FU"),
...