R和DT:在特定列上显示过滤器选项

L42*_*L42 5 r datatables dt

我想使用DT来显示一些数据并允许仅对某些列进行过滤.这段代码:

df <- data.frame(c("john","susy"), c("a", "b"))
names(df) <- c("name", "grade")
DT::datatable(df, filter = 'top')
Run Code Online (Sandbox Code Playgroud)

在每列上创建一个包含过滤选项的表:

现在说我只想让"名称"列的过滤器框可见.我怎么做?我以为我可以使用这样的过滤器:

df <- data.frame(c("john","susy"), c("a", "b"))
names(df) <- c("name", "grade")
DT::datatable(df, filter = c('none', 'top'))
Run Code Online (Sandbox Code Playgroud)

要仅在第二列上启用它,但它不起作用(它只需要一个字符参数).有任何想法吗?请注意,我希望右上角的搜索框可以搜索所有字段,但我只希望第二列上的特定于列的框.

Cla*_*eri 6

我不相信您可以修改过滤器选项的方面,但您可以通过设置searchable = FALSE您不想过滤的特定列来禁用其功能。

我希望这就是您正在寻找的:

DT::datatable(
  df, filter = 'top',
  options = list(
    columnDefs = list(list(targets = 1, searchable = FALSE))
  )
)
Run Code Online (Sandbox Code Playgroud)