R Shiny:htmlOutput 删除了我需要的空格

R Shiny: htmlOutput removes white spaces I need

我有一个这样的字符串,例如:

SomeName                     SomeValue
A much longer name           AnotherValue
Even longer name than before NewValue

假设我在 R 变量中正确地输入了这段文字,例如

variable<-"SomeName                     SomeValue<br\>A much longer name           AnotherValue<br\>Even longer name than before NewValue<br\>

在我的 ui.R:

...htmlOutput("TextTable")

在我的 server.R

output$TextTable<- renderUI({
    HTML(variable)
  })

但是输出不是我想要的方式。除一个空格外,所有空格都被删除。所以 "columns" 在我的输出中并不像它们应该的那样。我怎样才能避免这种情况?

如果我没记错的话,浏览器倾向于将 HTML 代码中的连续空格缩短为单个字符。不要将空格放在 r 变量中。将数据存储为矩阵,并使用 renderTable.

##server.R
library(shiny)
shinyServer(function(input, output) {
  variable = c("SomeName","SomeValue","A much longer name","AnotherValue","Even longer name than before", "NewValue")
  variable = matrix(data = variable, ncol = 2)  
    output$TextTable<- renderTable({variable},include.rownames = FALSE,include.colnames = FALSE)
})

##ui.R
library(shiny)
shinyUI(fluidPage(titlePanel(""),
  sidebarLayout(sidebarPanel(),
    mainPanel(uiOutput("TextTable")
    )
  )
))

更新

另一方面,如果您的文本已经采用该格式,您可以使用 <pre> 标记防止浏览器折叠空格。在您的情况下,您可以使用以下代码:

output$TextTable<- renderUI(HTML(paste0("<pre>",variable,"</pre>")))