2017-01-03 9 views
0

Наверняка это было задано раньше, но мне не удалось найти код, который работает для меня. Я работаю с 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 , после трубы), но это не помогло. Мысли оценили!

ответ

0

Я не совсем уверен, что это то, что вы после этого, но вы можете попробовать одно из следующих действий

library(data.table). 
c1 <- c("a", "b", "c") 
c2 <- c(1, 2, 3) 
test <- data.table(c1,c2) 
setkey(test,c2) 
test 
# or 
test[, some function in j, by = c2] 

Надежда, что помогает. У меня есть подозрение, что вы знаете больше R, чем я.

+0

Возможно, есть способ применить эти решения, но мои попытки отформатировать их так, чтобы они были совместимы с вызовом 'datatable(), оказались короткими. Я застрял, используя эту функцию, потому что я работаю в пределах Shiny и, следовательно, также находится в пределах функции 'renderDataTable ({})'. – Clare

+0

Clare's Q - это пакет 'DT', который обертывает библиотеку JavaScript' DataTables', а не пакет 'data.table', который расширяет data.frames. К сожалению, имена выглядят очень похожими. – Uwe

Смежные вопросы