Shiny 根据selectInputs创建分数
我是shiny的新手,在创建一个简单的应用程序时遇到了一些问题。我正在尝试使用selectInputs创建分数。例如:如果问题1=真,问题2=真,则输出值=2;如果问题1=假,问题2=真,则输出值=1;等等我认为问题可能在于,尽管我多次阅读了文档(很多),但我没有掌握反应性是如何工作的。我还尝试了单选按钮和动作按钮,但运气不好 以下是我在ui端得到的信息:Shiny 根据selectInputs创建分数,shiny,Shiny,我是shiny的新手,在创建一个简单的应用程序时遇到了一些问题。我正在尝试使用selectInputs创建分数。例如:如果问题1=真,问题2=真,则输出值=2;如果问题1=假,问题2=真,则输出值=1;等等我认为问题可能在于,尽管我多次阅读了文档(很多),但我没有掌握反应性是如何工作的。我还尝试了单选按钮和动作按钮,但运气不好 以下是我在ui端得到的信息: ui.R shinyUI(fluidPage( titlePanel("title"), sidebarLayout(
ui.R
shinyUI(fluidPage(
titlePanel("title"),
sidebarLayout(
sidebarPanel(
selectInput("var1",
label = "Some question 1",
choices = c("True", "False"),
selected = "True"),
selectInput("var2",
label = "Some question 2",
choices = c("True", "False"),
selected = "True"),
submitButton(text = "Submit", icon = NULL, width = NULL)
)
)
)
)
通常不鼓励使用
submitButton
,而支持使用更通用的actionButton
(每次按下时增加1)
在server.R
代码中,您可以创建一个反应(calc_score
),它依赖于input$submit
(即action按钮
),然后计算分数(这里使用复选框,因为TRUE和FALSE分别等于1和0,所以复选框值的总和给出分数)。使用隔离可避免依赖于input$var1
和input$var2
,因此当复选框更改时calc_score
不会触发(仅当input$submit
更改时,即按下action按钮
)
最后,calc_score
仅在输出实际使用时触发(在本例中,在output$score
函数中,该函数通过逐字输出(“score”)呈现包含在UI中的文本)
库(闪亮)
用户界面
library(shiny)
ui <- shinyUI(fluidPage(
titlePanel("title"),
sidebarLayout(
sidebarPanel(
checkboxInput("var1", label = "Some question 1", value = TRUE),
checkboxInput("var2", label = "Some question 2", value = TRUE),
actionButton(inputId = "submit", label = "Submit", icon = NULL, width = NULL)
),
mainPanel(
verbatimTextOutput("score")
))))
server <- function(input, output) {
calc_score <- reactive({
input$submit
isolate(sum(c(input$var1, input$var2)))
})
output$score <- renderText({
calc_score()
})
}
shinyApp(ui = ui, server = server)