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

时间:2015-03-05 13:08:57

标签: html r shiny

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

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")

在我的服务器上.R

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

但输出并不是我想要的方式。删除所有空白区域除外。所以&#34;列&#34;不应该在我的输出中。我怎么能避免这个?

1 个答案:

答案 0 :(得分:3)

如果我没记错的话,浏览器往往会将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>")))