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>")))
我有一个这样的字符串,例如:
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>")))