如何在R的DataTables中指定始终隐藏的列(不受屏幕宽度影响)?
解决DataTables指定列始终隐藏的问题
1. R的DT库(flexdashboard场景)
别用responsivePriority了,直接在columnDefs里设置强制隐藏,还能控制要不要在展开面板里显示这列。示例代码如下:
library(DT) library(flexdashboard) # 造点测试数据 df <- data.frame( column_1 = 1:10, column_2 = letters[1:10], column_3 = rnorm(10), column_4 = sample(c("Yes", "No"), 10, replace = TRUE), column_5 = paste0("hidden_", 1:10) # 要始终藏起来的列 ) datatable( df, responsive = TRUE, options = list( columnDefs = list( list( targets = 4, # DT列索引从0开始,column_5是第5列,对应索引4 visible = FALSE, # 强制让这列不管屏幕多宽都不显示 className = 'none' # 可选:加上这个,点击绿色+号展开时能看到这列;不想看就删掉 ) ) ) )
2. JavaScript原生DataTables场景
逻辑和R端一致,用columnDefs配置强制隐藏,代码示例:
$(document).ready(function() { $('#example').DataTable({ responsive: true, columnDefs: [ { targets: 4, // 对应第5列,索引从0开始 visible: false, className: 'none' // 可选:控制是否在展开面板显示该列 } ] }); });
为啥responsivePriority没用?
responsivePriority只是控制响应式隐藏的顺序——数值越大,列越晚被藏起来,但它管不了“始终隐藏”。只要屏幕宽度够,优先级高的列还是会显示出来。所以要实现强制隐藏,必须用visible = FALSE(R)或visible: false(JS)。
内容的提问来源于stack exchange,提问作者whv20
相关产品推荐
相关产品推荐

