并非所有给定的 selectInput 选择都显示在闪亮的 R 中
Not all given selectInput choices are shown in shiny R
我有一个非常简单的 Shiny
应用程序的问题。我可以选择的 selectInput
个选项似乎有限制,在问题 e:药物上只有 6 个选项。我希望有更多选择,但无论我如何选择,结果都是一样的。
我在这里提供了完整的代码
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)
这不是错误,您使用了重复的值作为选择。基本上,您对 selectInput(inputId = "e", ...)
的选择是一个具有以下值的向量:c(0,0,0,0,1,0,0,0,1,0,-1,1)
。 selectInput
将选择分解为 c(0,1,-1)
的向量,结果只有三个可见的 select 选项。
我不确定为什么无法显示重复的选择。但是,您可以将选项 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"),
我有一个非常简单的 Shiny
应用程序的问题。我可以选择的 selectInput
个选项似乎有限制,在问题 e:药物上只有 6 个选项。我希望有更多选择,但无论我如何选择,结果都是一样的。
我在这里提供了完整的代码
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)
这不是错误,您使用了重复的值作为选择。基本上,您对 selectInput(inputId = "e", ...)
的选择是一个具有以下值的向量:c(0,0,0,0,1,0,0,0,1,0,-1,1)
。 selectInput
将选择分解为 c(0,1,-1)
的向量,结果只有三个可见的 select 选项。
我不确定为什么无法显示重复的选择。但是,您可以将选项 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"),