Artigo escrito com a colaboração de Larisse Annie Saldanha

Quando usamos tabelas para as mais diferentes finalidades, podemos criar desde tabelas elaborados no Excel até data frames no R. Mas como deixar essas tabelas mais interativas e fáceis de usar quando estiverem em páginas HTML? É para ajudar nessa tarefa que usamos o pacote data table.

O pacote DT fornece uma interface em JavaScript para a biblioteca DataTable. Os objetos de dados do R (matrizes ou data frames) podem ser exibidos como tabelas em páginas HTML, e o DataTables fornece filtragem, paginação, classificação e muitos outros recursos nas tabelas. Os argumentos são:

datatable(data, options = list(), class = "display",
callback = JS("return table;"), rownames, colnames, container,
caption = NULL, filter = c("none", "bottom", "top"), escape = TRUE,
style = "default", width = NULL, height = NULL, elementId = NULL,
fillContainer = getOption("DT.fillContainer", NULL),
autoHideNavigation = getOption("DT.autoHideNavigation", NULL),
selection = c("multiple", "single", "none"), extensions = list(),
plugins = NULL, editable = FALSE)

Editando Tabelas no data table

Pode-se editar uma tabela via argumento editable do pacote. Depois de finalizar as edições, pode-se obter os índices da coluna e linha e os novos valores das células onde foram editadas via input$tableId_cell_info.

De modo geral, cria-se um observeEvent() da seguinte maneira:

observeEvent(input$table_cell_edit, {
info = input$table_cell_edit
proxy4 = dataTableProxy("table")

str(info)
i = info$row
j = info$col + 1  # column index offset by 1
v = info$value

dados[i, j] <<- DT::coerceValue(v, dados[i, j]) 
replaceData(proxy4, dados , resetPaging = FALSE, rownames = FALSE) })

Algumas Extensões Úteis do pacote data table

AutoFill

Com essa extensão, você verá um quadrado azul no canto direito que te permite preencher toda a coluna ou a linha.

library(DT)
datatable(iris, extensions = c('AutoFill','KeyTable'), editable = TRUE, options = list(
    autoFill = TRUE, keys= TRUE))

Botões

datatable(
  iris, extensions = 'Buttons', options = list(
    dom = 'Bfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
  )
)

Visibilidade

datatable(
  iris, rownames = FALSE,
  extensions = 'Buttons', options = list(dom = 'Bfrtip', buttons = I('colvis'))
)

KeyTable

datatable(iris, extensions = 'KeyTable', options = list(keys = TRUE))

Painéis de Busca

datatable(
  iris,
  options = list(dom = 'Pfrtip', columnDefs = list(list(
    searchPanes = list(show = FALSE), targets = 1:4
  ))),
  extensions = c('Select', 'SearchPanes'),
  selection = 'none'
)

Você já usa o Data Table para editar as suas tabelas no R? Tem alguma dica extra? Diz pra gente aqui nos comentários. E não esqueça de seguir a Oper nas redes sociais, estamos no Instagram, Facebook e LinkedIn!

0 respostas

Deixe uma resposta

Quer participar dessa discussão?
Sinta-se livre para contribuir!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *