datatable仅显示特定列

时间:2017-11-07 13:11:44

标签: r dataframe dt

我有一个数据帧,其中包含大量相关的列。

我想使用DT包只显示少数列。除了只允许数字引用的fixedColumns参数之外,我还没有找到更好的方法。

我遇到的问题是我只想展示第5,15和30栏。

我没有列出所有其他97列,而是尝试了以下内容:

 columnDefs = list(list(visible=FALSE, targets = c(-5, -15, -30)))

显然,这无法隐藏5,15和30以外的所有列。整个代码如下。

datatable(
  shared_df, rownames = FALSE, extensions = c('Buttons', 'FixedColumns'), class = 'cell-border stripe', options = list(
    dom = 'Bfrtip',
    scrollX = TRUE,
    fixedColumns = TRUE,
    columnDefs = list(list(visible=FALSE, targets = c(-1, -2, -3, -4, -5))),
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
  )
) 

任何线索?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:

a <- 1:96 
remove <- c (1, 2, 3, 4, 5, 30, 31, 32, 33)

datatable(
  shared_df, rownames = FALSE, extensions = c('Buttons', 'FixedColumns'), class = 'cell-border stripe', options = list(
    dom = 'Bfrtip',
    scrollX = TRUE,
    fixedColumns = TRUE,
    columnDefs = list(list(visible=FALSE, targets = a[! a %in% remove])),
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
  )
) %>%
  formatStyle('pl_h_interni',  color = 'white', backgroundColor = 'red', fontWeight = 'bold') %>%
  formatStyle('nov_iznos_h_interni',  color = 'white', backgroundColor = 'green', fontWeight = 'bold')  %>%
  formatStyle('star_iznos_h_interni',  color = 'white', backgroundColor = 'gray', fontWeight = 'bold')