Shiny 根据selectInputs创建分数

Shiny 根据selectInputs创建分数,shiny,Shiny,我是shiny的新手,在创建一个简单的应用程序时遇到了一些问题。我正在尝试使用selectInputs创建分数。例如:如果问题1=真,问题2=真,则输出值=2;如果问题1=假,问题2=真,则输出值=1;等等我认为问题可能在于,尽管我多次阅读了文档(很多),但我没有掌握反应性是如何工作的。我还尝试了单选按钮和动作按钮,但运气不好 以下是我在ui端得到的信息: ui.R shinyUI(fluidPage( titlePanel("title"), sidebarLayout(

我是shiny的新手,在创建一个简单的应用程序时遇到了一些问题。我正在尝试使用selectInputs创建分数。例如:如果问题1=真,问题2=真,则输出值=2;如果问题1=假,问题2=真,则输出值=1;等等我认为问题可能在于,尽管我多次阅读了文档(很多),但我没有掌握反应性是如何工作的。我还尝试了单选按钮和动作按钮,但运气不好

以下是我在ui端得到的信息:

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)