0

我有以下闪亮的应用程序:

library(shiny)

list1 <- c(0.2,0.8,0.5)
list2 <- c("element1", "element2", "element3")
df <- data.frame(list1, list2)

UI <- fluidPage(
  formattableOutput("table1")
)
Server <- function(input, output) {

  output$table1 <- renderFormattable({
    formattable(df, list(
      list1 = color_tile("green", "red") 
    ))
  })

}


shinyApp(ui = UI, server = Server)

现在按表有某种条件格式。这行得通。但是,我希望能够自己进行格式化。所以 fe - low barrier(绿色)应该是 0,上限(红色)应该是 1。

关于我如何做到这一点的任何建议?

4

1 回答 1

1

我找不到任何使用 formattable 的函数手动设置条件格式边界的方法。但是,边界似乎始终设置为给定列的最小值和最大值,因此您可以通过硬编码两行(包含所需的最小值和最大值)来解决此问题,然后使用 CSS 隐藏它们,如下所示:

CSS:

/*
* www/styles.css
*/

table tr:nth-child(-n + 2) {
  display: none;
}

回复:

library(shiny)

list1 <- c(0.0,1.0,0.2,0.8,0.5)
list2 <- c("", "", "element1", "element2", "element3")
df <- data.frame(list1, list2)

UI <- fluidPage(
  includeCSS("www/styles.css"),
  formattableOutput("table1")
)
Server <- function(input, output) {

  output$table1 <- renderFormattable({
    formattable(df, list(
      list1 = color_tile("green", "red") 
    ))
  })

}


shinyApp(ui = UI, server = Server)

请注意,此修复仅在您要显示的值都在零和一之间时才有效。如果您使用超出该范围的任何内容,则边界将重置为新的最小值/最大值。

于 2018-04-29T15:36:58.120 回答