Outputting multiple lines of text with renderText() in R shiny

后端 未结 3 455
青春惊慌失措
青春惊慌失措 2020-11-30 23:11

I want to output multiple lines of text using one renderText() command. However, this does not seem possible. For example, from the shiny tutorial we have trunc

3条回答
  •  一个人的身影
    2020-11-30 23:27

    You can use renderUI and htmlOutput instead of renderText and textOutput.

    require(shiny)
    runApp(list(ui = pageWithSidebar(
      headerPanel("censusVis"),
      sidebarPanel(
        helpText("Create demographic maps with 
          information from the 2010 US Census."),
        selectInput("var", 
                    label = "Choose a variable to display",
                    choices = c("Percent White", "Percent Black",
                                "Percent Hispanic", "Percent Asian"),
                    selected = "Percent White"),
        sliderInput("range", 
                    label = "Range of interest:",
                    min = 0, max = 100, value = c(0, 100))
      ),
      mainPanel(textOutput("text1"),
                textOutput("text2"),
                htmlOutput("text")
      )
    ),
    server = function(input, output) {
      output$text1 <- renderText({paste("You have selected", input$var)})
      output$text2 <- renderText({paste("You have chosen a range that goes from",
                                        input$range[1], "to", input$range[2])})
      output$text <- renderUI({
        str1 <- paste("You have selected", input$var)
        str2 <- paste("You have chosen a range that goes from",
                      input$range[1], "to", input$range[2])
        HTML(paste(str1, str2, sep = '
    ')) }) } ) )

    Note you need to use
    as a line break. Also the text you wish to display needs to be HTML escaped so use the HTML function.

提交回复
热议问题