r闪亮的表不渲染HTML

时间:2013-09-26 04:57:56

标签: r shiny

我正在使用renderTable创建一个表,但表中的HTML不呈现:

table not rendering

这是感兴趣的代码片段:

if (is.null(Compare_Count) || is.na(Compare_Count) || length(Compare_Count) == 0L ) {
          CT_Table[i, 3] <- HTML("<i class='icon-arrow-up'></i>")
        } else if (CT_Table[i, 2] > Compare_Count) {
          CT_Table[i, 3] <- print(tags$i(class='icon-arrow-up', style="text-color: green"), quote = FALSE)
}

HTMLpastec都无效。

我怎样才能显示箭头?

谢谢!


server.r:[注意,这是一个例子。代码不完整,括号可能不匹配等。对问题不重要。]

output$example <- renderTable(include.rownames=FALSE,{
 CT_Table <- count(Canidates,vars=c("Name"))
 CT_Table <- CT_Table[order(CT_Table["Recent Reviews: "], decreasing=T),]
    for (i in 1:nrow(CT_Table)) {
      Compare_Name <- paste(CT_Table$Product[i])
      Compare_Count <- Can_trend[Can_trend$Name == Compare_Name, 2]
        if (is.null(Compare_Count) || is.na(Compare_Count) || length(Compare_Count) == 0L ) 
{
          CT_Table[i, 3] <- HTML("<i class='icon-arrow-up'></i>")
        } else if (CT_Table[i, 2] > Compare_Count) {
          CT_Table[i, 3] <- tags$i(class='icon-arrow-up', style="text-color: green")
        } else if (CT_Table[i, 2] < Compare_Count) {
          CT_Table[i, 3] <- tags$i(class='icon-arrow-down', style="text-color: red")
        } else if (CT_Table[i, 2] == Compare_Count) {
          CT_Table[i, 3] <- tags$i(class='icon-minus', style="text-color: yellow")
        }
     }
  }
 CT_Table
})

ui.r只是对tableOutputhtmlOutput的简单调用,但都不会将html粘贴到列中。

1 个答案:

答案 0 :(得分:13)

这已通过sanitize.text.function = function(x) x修正;

需要像这样包括:

output$example <- renderTable({
   table <- someTable_Data_here
   table
}, sanitize.text.function = function(x) x) 

这是要点here


另外,请注意,

我注意到您可以在xtable函数内调用renderTable,它会正确呈现表格。

您应该注意,传递给xtable的选项无效!相反,您需要将这些选项传递给'renderTable'函数。

所以如果你想这个叫:

output$example <- renderTable({
   table <- someTable_Data_here
   xtable(table, align=c("llr"))
}, sanitize.text.function = function(x) x) 

您需要做的是:

output$example <- renderTable({
   table <- someTable_Data_here
   table
},align=c("llr"), sanitize.text.function = function(x) x) 

RStudio团队和RShiny团队非常棒。我确信还有大量的文档仍在编写中,我希望这能帮到某些人。