Установите вручную границы условного форматирования с помощью таблицы форматирования в Shiny - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть следующее блестящее приложение:

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 - нижний барьер (зеленый) должен быть 0, а верхняя граница (красный) - 1.

Любые предложения о том, как я могу это сделать?

1 Ответ

0 голосов
/ 29 апреля 2018

Я не смог найти способ вручную установить границы условного форматирования, используя любую из функций formattable. Однако, похоже, что границы последовательно установлены на минимальное и максимальное значения для данного столбца, поэтому вы можете решить эту проблему путем жесткого кодирования двух строк, содержащих требуемые минимальные и максимальные значения, а затем скрыть их с помощью CSS следующим образом:

CSS:

/*
* www/styles.css
*/

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

R

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)

Просто обратите внимание, что это исправление будет работать, только если все значения, которые вы хотите отобразить, находятся в диапазоне от нуля до единицы. Если вы используете что-либо за пределами этого диапазона, границы будут сброшены до нового минимума / максимума.

...