首页 > 解决方案 > 删除最终用户对列进行排序的能力

问题描述

我有一个大型数据表对象,我想限制某些列的可排序性。我想我必须使用 options 参数,但我对 JavaScript 的了解还没有到我知道如何将它与函数的参数集成的程度。

我以以下代码为例:

library(DT)

# Create Columns and dataframe
letters <- c("a", "b", "c", "d")
numbers <- c(1, 2, 3, 4)
words <- c("the", "quick", "brown", "fox")
df <- data.frame(letters, numbers, words, stringsAsFactors = FALSE)

# Create Data Table
htmlDf <- datatable(df, rownames = FALSE)

我也有以下代码片段,我试图将其按摩到选项参数中。小代码块来自https://datatables.net/reference/option/columns.orderable

    $('#example').dataTable( {
      "columns": [
        {null,
         "orderable": false },
         null,
                ]
    } );

出于这个问题的目的,假设我希望删除对“数字”列进行排序的能力。

谢谢!

注意:这不适用于闪亮的应用程序。

标签: rdt

解决方案


R 包DT的站点提供了一些关于如何将 javascript 选项转换datatables为 R 语法的精彩教程。

本质上,您所做的是将反映 JavaScript 代码结构的嵌套命名列表传递options给函数的参数datatable。所以在你的情况下,你想要这样做:

htmlDf <- datatable(df,
                    rownames = FALSE,
                    options = list(
                        columnDefs = list(
                            list(orderable = F,
                                 targets = c(1))
                            )
                        )
                    )

这很好地将orderable = FALSE条件应用于第 1 列。请注意,您必须使用 JavaScript 样式 0 索引而不是 R 样式 1 索引:

在此处输入图像描述


推荐阅读