Наверняка это было задано раньше, но мне не удалось найти код, который работает для меня. Я работаю с DataTable в R Shiny. Я хочу создать DataTable и заказать его по умолчанию во втором столбце, а не в первом. Это то, что у меня есть на сервере.R:Порядок рядов с данными datatables
output$TabVals <- DT::renderDataTable({
DT::datatable(TableData(),
options = list(pageLength = 25,
searching = FALSE,
paging = FALSE),
rownames = FALSE) %>%
formatRound(2, digits = 0)
})
Это прекрасно работает. То, что я обнаружил, что другие люди сделали, включало в опции order = list(2, 'asc')
(поскольку я сортирую во втором столбце и хочу, чтобы данные возрастали. Однако, когда я добавляю эту строку, DataTable больше не отображает никаких строк.
I собрать этот пример, чтобы воссоздать проблему:..
c1 <- c("a", "b", "c")
c2 <- c(1, 2, 3)
test <- cbind(c1, c2)
test1 <- DT::datatable(test)
test2 <- DT::datatable(test, options = list(order = list(2, 'desc')))
test1
делает хороший DataTable test2
создает пустую таблицу
Я попытался переместить order = list(2, 'asc')
в другие части кода (например, после того, как варианты, перед тем rownames , после трубы), но это не помогло. Мысли оценили!
Возможно, есть способ применить эти решения, но мои попытки отформатировать их так, чтобы они были совместимы с вызовом 'datatable(), оказались короткими. Я застрял, используя эту функцию, потому что я работаю в пределах Shiny и, следовательно, также находится в пределах функции 'renderDataTable ({})'. – Clare
Clare's Q - это пакет 'DT', который обертывает библиотеку JavaScript' DataTables', а не пакет 'data.table', который расширяет data.frames. К сожалению, имена выглядят очень похожими. – Uwe