Создание функции таблицы DT в shiny

#r

Вопрос:

Я пытаюсь создать функцию для таблицы DT, в которой, просто указав имя столбца в параметре, столбец должен быть скрыт

 dt_table <- function(data, 
                     colhidden = c(a)){
  datatable(data, 
            options = list(
              columnDefs = list(
                list(visible=FALSE, targets=colhidden)
              )
            ))
}
 dt_table(iris,colhidden = c('Species'))
 

Но, к сожалению, колонка не скрывается. Кто-нибудь может мне помочь?

Ответ №1:

targets нужен номер столбца, с которым вы можете связаться match . Попробуй —

 library(DT)
dt_table <- function(data, colhidden) {
datatable(data, 
          options = list(
            columnDefs = list(
              list(visible=FALSE, targets=match(colhidden, colnames(data))))
            )
          )
}

dt_table(iris,colhidden = c('Species'))
dt_table(iris,colhidden = c('Species', 'Sepal.Length'))
 

Комментарии:

1. Спасибо, но если я добавлю rownames = F в свою функцию, имена строк не будут скрыты. Почему?

2. Это не имеет отношения к заданному вопросу, но если я его использую datatable(data, options = list(columnDefs = list(list(visible=FALSE, targets=match(colhidden, colnames(data))))), rownames = FALSE) , он скрывает имена строк для меня.