如何在 R 闪亮的字符串中插入新行

Posted

技术标签:

【中文标题】如何在 R 闪亮的字符串中插入新行【英文标题】:how to insert new line in R shiny string 【发布时间】:2014-12-09 16:23:07 【问题描述】:

在闪亮中,我有以下几点:

  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)

)

但是,似乎不尊重换行符。我该如何解决?

谢谢!

【问题讨论】:

Outputting multiple lines of text with renderText() in R shiny的可能重复 verbatimTextOutput()renderText() 将尊重 \n 字符。 【参考方案1】:

据我所知,只有两个选项可以在闪亮中显示多行。使用verbatimTextOutput 的一种方法,它将在您的文本周围提供一个灰色框(个人偏好)。另一种是使用renderUIhtmlOutput 来使用原始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/>"))
      )

    
  )
)

这会产生下图:

【讨论】:

假设您的应用程序中已经有一些文本,例如,反应式表达式,并且其中已经包含 \n 换行符。使用 htmlOutput("text3")output$text3 &lt;- renderText( gsub(pattern = "\\n", replacement = "&lt;br/&gt;", yourtext) )【参考方案2】:

怎么样

  output$text2 <- renderUI(
    HTML('hello <br> world')
  )

【讨论】:

【参考方案3】:

对于阅读本文的任何人,您可能还想使用 tags$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" )

【讨论】:

【参考方案4】:

这是一种不同的方法,可能更简单一些。

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)

【讨论】:

【参考方案5】:

还有write(x, file = "")的把戏:

renderPrint(
 write(showSequence(), file = "")
)

如果输出是verbatimTextOutput,那么这可行。

【讨论】:

以上是关于如何在 R 闪亮的字符串中插入新行的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 字符串中手动插入新行 [重复]

通过闪亮的包R在浏览器中显示符号

C ++在文本文件中的特定字符后插入新行

在java中去除新行和回车[重复]

R闪亮的导入传单html小部件对象

用perl在两行之间插入新行[关闭]