newOline in tableOutput for Shiny

时间:2015-10-17 16:05:14

标签: r shiny xtable

我有以下格式的数据框:

myDf <- data.frame(doc = c(1, 2, 3), text = c("Statement 1: ok<br/> Statement 2: not ok", 
"Statement 1: true\n Statement 2: false", "Statement 1: yes Statement 2: no"))

我想在shiny应用中呈现以下内容:

doc text
1   1   Statement 1: ok
        Statement 2: not ok
2   2   Statement 1: true
        Statement 2: false
3   3   Statement 1: yes Statement 2: no

但是,每次我尝试(使用br\n)时,文字都会逐字呈现。

闪亮应用代码:

library(shiny)
server <- function(input, output) {
  myDf <- data.frame(doc = c(1, 2, 3), text = c("Statement 1: ok<br/> Statement 2: not ok", "Statement 1: true\n Statement 2: false", "Statement 1: yes Statement 2: no"))

  output$dfTable <- renderTable({ myDf })
}




ui <- fluidPage(
    mainPanel(tableOutput("dfTable"))
)



shinyApp(ui = ui, server = server)

我找到了提及此问题的one网页,但在rmarkdownmustache的上下文中对此进行了更多讨论。 AnotherLatex

的背景下讨论了这一点

1 个答案:

答案 0 :(得分:0)

我的工作方式是使用闪亮的The mock was not called as expected: Argument(s) are different! Wanted: function1.apply( 'Failure(com.test.InflightChangeTimeoutException)' is not equal to 'Failure(null)' ); 创建表格,然后渲染HTML。它没有标准样式,所以它需要CSS来制作你想要的表格。但是,当我需要从MySQL db生成的动态下拉列表时,我遇到了这些tags。无论如何,下面的代码可能会让你上路。

tags

创建所需的HTML。以下是myDF <- tags$table(tags$tr(tagList(mapply(tags$th,c("doc", "text"), SIMPLIFY = FALSE) ) ), tags$tr(tags$td(1), tags$td(tags$ul(tagList(mapply(tags$li,c("Statement 1: ok", "Statement 2: not ok"), SIMPLIFY = FALSE))))), tags$tr(tags$td(2), tags$td(tags$ul(tagList(mapply(tags$li,c("Statement 1: true", "Statement 2: false"), SIMPLIFY = FALSE))))), tags$tr(tags$td(3), tags$td(tags$ul(tagList(mapply(tags$li,c("Statement 1: yes", "Statement 2: no"), SIMPLIFY = FALSE))))) ) 部分。请注意,您必须从shiny更改为renderTable

renderUI

如果不依靠构建HTML,我们是否愿意知道这是否可以实现。