Shinyアプリケーションでは、セキュリティ上の理由から一部の値が抑制されていて、特定の文字列で置き換えることができるdatatable
ここで私は"my_string"
と呼ぶでしょう。この列を並べ替えるとき、これらの抑制された値は、のようにソートする必要があります。すべての実際の数値です。この列では、-1
とコード化された抑制された値を除いて、すべての値が正の値になります。R Shiny DataTablesは数値を文字列とソートで置き換え、数値よりも小さい数値を返します
私は"my_string"
として-1
を再コーディング(character
に列を強制している)、正しく文字コード化された数値をソートするnatural
plug-inを使用して試してみたが、それは数値の全てよりも大きいかのよう"my_string"
がソートされています。これを処理する
別の可能な方法は、文字列で-1
を置き換えるためにJavaScript
コールバックを使用することであるかもしれませんが、私はそのスクリプトを記述し、適切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)
パーフェクトは、あなたに感謝します!また、一般的なデータテーブルのドキュメントがどのようにR DT環境にマップされているかを見ることは非常に有用です。将来の訪問者のためのメモ - 'natural ='プラグインがそれを必要とするので、私の例では 'server = FALSE'を含めましたが、実際にはこの解決には必要ありません。 –