#r #shiny #datatables #dt #datatables-1.10
#r #блестящий #datatables #dt #datatables-1.10
Вопрос:
Я пытаюсь добавить опцию для DataTable в Shiny, используя некоторые из расширенных опций, которые можно найти в таблицах данных.
Я хочу реализовать опцию SearchBuilder.columns, чтобы окно поиска могло выполнять поиск только в столбце «id» https://datatables.net/reference/option/searchBuilder.columns
Как реализовать эту опцию в R Shiny? Каков синтаксис?
Приведенный ниже код не сработал.
output$table_pred <- DT::renderDataTable(df, options = list(pageLength =5), searchBuilder.columns = df$id)
Вот полный код:
library(shinythemes)
library(shiny)
library(DT)
setwd("c:/Desktop/datasets/")
df <- read.csv("prediction_data.csv")
df2 <- read.csv("test_data.csv")
ui <- fluidPage(
fluidRow(
column(12,
dataTableOutput('table_pred')
)
),
fluidRow(
column(12,
dataTableOutput('table_test')
)
)
)
server <- function(input, output, session) {
#rendering the datatable for rediction data
output$table_pred <- DT::renderDataTable(df, options = list(pageLength =5), searchBuilder.columns = df$id)
output$table_test <- DT::renderDataTable(df2,options = list(pageLength =10))
}
shinyApp(ui, server)
Ответ №1:
Потрясающее расширение!
Он недоступен в пакете ‘DT’. Вот как вы можете его использовать.
Во-первых, загрузите файл JavaScript и файл CSS.
Затем, вот код R:
library(DT)
library(htmltools)
dat <- data.frame(
x = c(0, 1, 2, 3, 4),
id = c("sub0", "sub0", "sub1", "sub1", "sub2")
)
dtable <- datatable(
dat,
options = list(
dom = "Qlfrtip",
searchBuilder = list(
columns = list(2) # 2 is the index of the 'id' column
)
)
)
path_to_searchBuilder <- # path to the folder containing the two searchBuilder files
normalizePath("~/Work/R/DT/searchBuilder/")
dep <- htmlDependency(
name = "searchBuilder",
version = "1.0.0",
src = path_to_searchBuilder,
script = "dataTables.searchBuilder.min.js",
stylesheet = "searchBuilder.dataTables.min.css",
all_files = FALSE
)
dtable$dependencies <- c(dtable$dependencies, list(dep))
dtable
Комментарии:
1. Это действительно круто. Я постараюсь реализовать это в своем блестящем приложении. Благодарим вас за разъяснение параметров, которые есть у DataTable