Имена строк кадра данных iris
: «1», «2», «3», ...
Когда я устанавливаю 0-й столбец как упорядочиваемый с помощью DT
, упорядочение ведет себя так, как если бы имена строк были числовыми:
library(DT)
datatable(iris,
options = list(
columnDefs = list(
list(orderable=TRUE, targets=0)
)
)
)
Nice. Теперь, когда я делаю то же самое внутри блестящего, поведение отличается: порядок ведет себя так, как если бы имена строк были символьными строками:
library(shiny)
shinyApp(
ui = fluidPage(fluidRow(column(12, DTOutput('tbl')))),
server = function(input, output) {
output$tbl = renderDT(
iris, options = list(
columnDefs = list(
list(orderable=TRUE, targets=0)
)
)
)
}
)
Не приятно. В чем причина разницы? Я хотел бы иметь первое поведение в Shiny. Как обходной путь, мы могли бы установить числовой столбец в первой позиции и установить rownames=FALSE
, но мне интересно, есть ли более простое решение, и я заинтригован этой разницей.
EDIT
Я наконец-то поступил следующим образом:
output$tbl = renderDT({
dt <- datatable(
iris, options = list(
columnDefs = list(
list(orderable=TRUE, targets=0)
)
)
)
dt$x$data[[1]] <- as.numeric(dt$x$data[[1]])
dt
})