In shiny, I have the following:
output$sequenceText <- renderText({
showSequence()
})
showSequence <- reactive({
selectedSeqs <- as.numer
How about
output$text2 <- renderUI({
HTML('hello <br> world')
})
To my knowledge, there are only two options to display multiple lines within shiny. One way with using verbatimTextOutput
which will provide a gray box around you text (personal preference). The other is to use renderUI
and htmlOutput
to use raw html. Here is a basic working example to demonstrate the results.
require(shiny)
runApp(
list(
ui = pageWithSidebar(
headerPanel("multi-line test"),
sidebarPanel(
p("Demo Page.")
),
mainPanel(
verbatimTextOutput("text"),
htmlOutput("text2")
)
),
server = function(input, output){
output$text <- renderText({
paste("hello", "world", sep="\n")
})
output$text2 <- renderUI({
HTML(paste("hello", "world", sep="<br/>"))
})
}
)
)
This yields the following figure:
This is a different approach which is perhaps a bit simpler.
ui <- fluidPage(
htmlOutput("text")
)
server <- function(input, output) {
output$text <- renderText({
paste0("<p>", letters[1:10], "</p>")
})
}
# Run the application
shinyApp(ui = ui, server = server)
There is also the write(x, file = "")
trick:
renderPrint({
write(showSequence(), file = "")
})
If the output is a verbatimTextOutput
then this works.
for anyone reading this, you might also want to use tags$br(), which you simply have to insert as argument after a piece of text. For example,
tags$div(
"a piece of text", tags$br(),
"this will start from the new line now", tags$br(),
"and this as well",
"but not this" )