闪亮的renderTable省略Unicode特殊字符

时间:2018-07-25 09:32:05

标签: r shiny

我在一个闪亮的应用程序中有一个表,其中包含Unicode特殊字符。但是它们在tableOutput中被省略了,根本没有显示。

library(plotly)
p <- plot_ly(DATAFINALE, x = ~MONTH_SALES, y = ~ DAY_SALES, z = ~HOURS_INS, color = ~cluster) %>%
  add_markers() %>%
  layout(scene = list(xaxis = list(title = x),
                      yaxis = list(title = y),
                      zaxis = list(title = z)))
p

enter image description here

library(shiny) ui <- fluidPage( tableOutput("table") ) server <- function(input, output,session) { output$table = renderTable({ mtcars[2,2]="◨" mtcars[1:3,1:3] } ,sanitize.text.function = identity) } shinyApp(ui = ui, server = server) 似乎没有任何区别。我相信这是print.xtable的选项-无论如何,print.xtable可以在控制台中很好地再现字符。 如果我使用renderDataTable和dataTableOutput,则这些字符可以正常显示(作为实际的Unicode字符)。那么为什么它们不与renderTable和tableOutput一起出现?

1 个答案:

答案 0 :(得分:1)

这适用于html实体:

  output$table = renderTable({

    mtcars[2,2]="&#9704;"
    mtcars[1:3,1:3]
  }

  , sanitize.text.function = identity)

如果您不想在网络上搜索html代码,则可以像这样获得它:

sprintf("&#%d;", utf8ToInt("◨"))

最后,您可以按照以下步骤进行自动化。定义“消毒剂”功能:

f <- function(x){
  xs <- strsplit(as.character(x), "")[[1]]
  paste0(sprintf("&#%d;", sapply(xs, utf8ToInt)), collapse="")
}

然后在renderTable中使用它:

  output$table = renderTable({

    mtcars[2,2]="◨"
    mtcars[1:3,1:3]
  }

  , sanitize.text.function = function(x) sapply(x, f) )