2015-10-17 40 views
0

我有以下形式的数据帧:换行符在tableOutput的闪亮

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网页时提到了这个问题,但讨论更在和mustache上下文。 AnotherLatex背景下讨论了这一点。

回答

0

他们的方式,我得到这个工作是创建使用光泽tags,然后渲染HTML中的表格。它没有提供标准样式,所以它需要CSS来创建表格。然而,我在这些tags来到时,我需要从MySQL数据库生成的动态下拉菜单。无论如何,下面的代码可能会让你在路上。

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

创建所需的HTML。以下是shiny部分。注意你必须改变从renderTablerenderUI

server <- function(input, output) { 

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




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



shinyApp(ui = ui, server = server) 

想知道这是否可以实现,而不是诉诸于构建HTML。