В приложении Shiny у меня есть столбец чисел в datatable
, где по соображениям безопасности некоторые значения были подавлены, и мы хотим заменить их определенной строкой, которую здесь я назову "my_string"
. При сортировке по этому столбцу эти подавленные значения необходимо отсортировать так, как если бы они меньше всех фактических чисел. В этом столбце все значения положительные, за исключением подавленных значений, которые были закодированы как -1
.
Я пробовал перекодировать -1
как "my_string"
(который приводит столбец к character
) и использовать плагин natural
-in, чтобы правильно отсортировать числовые значения с символьной кодировкой, но "my_string"
сортируется так, как будто оно больше всех числовых значений.
Другой возможный способ справиться с этим - использовать обратный вызов JavaScript
для замены -1
строкой, но я не знаю, как написать этот сценарий и правильно добавить его в datatable
.
Вот моя попытка использовать плагин natural
. Если бы он работал так, как я хочу, строка с «my_string» была бы внизу списка, а не вверху.
# Example data, representing how the data comes to me
my_mtcars <- mtcars[1:6, 1:4]
my_mtcars[1, 4] <- -1
# Here I am recoding the -1
my_mtcars[my_mtcars == -1] <- 'my_string'
# This is our demo app.R
library(shiny)
library(DT)
ui <- fluidPage(
dataTableOutput('example')
)
server <- function(input, output) {
output$example <- renderDataTable(
my_mtcars,
server = FALSE,
plugins = 'natural',
options = list(columnDefs = list(list(type = 'natural', targets = '_all')))
)
}
shinyApp(ui = ui, server = server)