Удалите возможность конечных пользователей сортировать по столбцу - PullRequest
3 голосов
/ 08 марта 2019

У меня есть большой объект datatables, и я хочу ограничить сортировку определенных столбцов. Я думаю, что должен использовать аргумент 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,
                ]
    } );

Для целей этого вопроса, предположим, я хочу убрать возможность сортировки по столбцу «числа».

Спасибо!

Примечание: это не для блестящего приложения.

1 Ответ

3 голосов
/ 08 марта 2019

Сайт для пакета 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. Обратите внимание, что вы должны использовать индексацию 0 в стиле JavaScript, а не индексацию в стиле R:

enter image description here

...