Как вставить новую строку в строку R shiny
В блеске у меня есть следующее:
output$sequenceText <- renderText({
showSequence()
})
showSequence <- reactive({
selectedSeqs <- as.numeric(input$sequenceSelect)
resultString <- ""
currentString <-""
for(i in selectedSeqs){
currentString <- paste(i, toString(myProts[i]), sep = ":")
resultString <- paste(resultString, currentString, sep = "\n")
}
return(resultString)
})
Однако, похоже, что новый символ линии соблюдается. Как это исправить?
Спасибо!
Ответы
Ответ 1
Насколько мне известно, есть только два варианта отображения нескольких строк в блестящей форме. Один из способов использования verbatimTextOutput
, который предоставит серый текст вокруг вашего текста (личное предпочтение). Другой - использовать renderUI
и htmlOutput
для использования raw html. Вот основной рабочий пример для демонстрации результатов.
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/>"))
})
}
)
)
Это дает следующий рисунок:
![введите описание изображения здесь]()
Ответ 2
Как насчет
output$text2 <- renderUI({
HTML('hello <br> world')
})
Ответ 3
Это другой подход, который, возможно, немного проще.
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)
Ответ 4
для тех, кто читает это, вы также можете использовать теги $ br(), которые вы просто должны вставить в качестве аргумента после фрагмента текста. Например,
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" )