Настройка отображения в Shiny отсутствующих значений в DataTables - PullRequest
2 голосов
/ 23 октября 2019

DataTables в Shiny отображает пропущенные значения в виде пробела. Есть ли способ изменить это? Я особенно мечтаю о серых курсивах NA s, которые RStudio использует в своей программе просмотра данных. У меня не было бы проблем с введением таких строк в символьные столбцы для целей отображения, но, конечно, иногда столбцы являются числовыми или датированными, и преобразование их только для отображения кажется проблематичным.

MWE по умолчанию DTотображение пропущенных значений:

library(DT)
library(shiny)

ui <- fluidPage(
    dataTableOutput("airquality")
)

server <- function(input, output) {
    output$airquality <- renderDataTable(airquality)
}

shinyApp(ui = ui, server = server)

default_dt_display

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Вы можете сделать:

library(DT)

rowCallback <- c(
    "function(row, data){",
    "  for(var i=0; i<data.length; i++){",
    "    if(data[i] === null){",
    "      $('td:eq('+i+')', row).html('NA')",
    "        .css({'color': 'rgb(151,151,151)', 'font-style': 'italic'});",
    "    }",
    "  }",
    "}"  
  )

datatable(airquality, options = list(rowCallback = JS(rowCallback)))

enter image description here

1 голос
/ 23 октября 2019

Хорошим началом может быть настройка одной из опций:

options(htmlwidgets.TOJSON_ARGS = list(na = 'string'))

Вот источник , чтобы вы могли прочитать полный поток об этой проблеме и ее обходных путях.

...