R Shiny中开关和波浪的奇怪行为

时间:2016-08-17 15:48:13

标签: r shiny

我正在尝试使用R Shiny中的switch函数来分配值,并且我对波浪号有一个奇怪的问题。在下面的代码中,如果我在UI中选择“BAYAMÓN”,服务器上的switch函数会为x分配NULL,当它应该是5.另一方面,如果我使用if...else结构,它可以工作(第一组注释行)。如果我将变量的值设置为“BAYAMÓN”并使用switch,那么它也可以工作(第二组注释行)。我使用的是Shiny的最新版本。谢谢。

ui.R

library(shiny)

choices_Region <- c("ARECIBO" = "ARECIBO", "BAYAMÓN" = "BAYAMÓN", "CAGUAS" = "CAGUAS")

shinyUI(fluidPage(
   titlePanel(h3("Test"), windowTitle = "Test"),
   sidebarLayout (
       sidebarPanel(
          selectInput("select_Region", label = "Región", choices = choices_Region)
       ),
        mainPanel(
            tabsetPanel(
                tabPanel("Debug", verbatimTextOutput("debug"))
            )
        )
)))

server.R

library(shiny)

shinyServer(function(input, output, session) {
output$debug <- renderPrint({
    x <- switch(input$select_Region, "ARECIBO" = 4, "BAYAMÓN" = 5, "CAGUAS" = 6)
    x # prints NULL if BAYAMÓN selected

    # region <- input$select_Region
    # x <- if (region == "ARECIBO") 4 
         # else if (region == "BAYAMÓN") 5
         # else 6
    # x # prints 5 if BAYAMÓN selected in ui

    # region <- "BAYAMÓN"
    # x <- switch(region, "ARECIBO" = 4, "BAYAMÓN" = 5, "CAGUAS" = 6)
    # x # prints 5

    })
})

0 个答案:

没有答案