R Shiny:htmlOutput去除空格 我需要去除htmlOutput中的空格。

4

我有一个字符串,例如:

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

但输出结果不符合我的要求。除一个空格外,所有的空格都被删除了。因此,在我的输出中,“列”不如预期。我该如何避免这种情况?


HTML 函数是做什么的?它可能会去除空格吗? - Roman Luštrik
1个回答

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

1
很遗憾,我不能这样做。我的文本文件用于以精确的格式显示数据,并作为文本文件导入到Word等软件中。因此,我需要使用这些空格,并且需要它们被正确显示。 - MichiZH
你说得对,我没有真正回答你的实际问题。希望我刚才对答案所做的修改更适合你的情况。 - Paul de Barros
太棒了!非常感谢Paul! - MichiZH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接