【发布时间】:2021-07-30 00:47:01
【问题描述】:
我正在尝试创建一个 DT SearchPanes 自定义过滤器,它将逗号分隔字符串的列视为单独的条目。我知道如何在 Datatables 中进行这项工作(请参阅 here),但我正在努力使用正确的语法使其在 DT 中工作(this 帖子很有帮助,但并没有让我到达那里) .
当我运行应用程序时,我得到一个空的 SearchPane,上面写着“表中没有可用的数据”。
这是我的代码。我对 DT(和 Javascript)很陌生,所以我想知道我是否遗漏了一些明显的东西?任何帮助将不胜感激!
server <- function(input, output) {
cover <- read.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQaZCDpH85S4jj0kgHhTDdJTYrjMCyo1CZOHwAlkEl3YOBgFwVwdHZ8xmAa-xW7UHLo8_Snkrjj450B/pub?gid=0&single=true&output=csv")
cover$Cover.crop <- as.factor(cover$Cover.crop)
cover$Type <- as.factor(cover$Type)
cover$Growing.Season <- as.factor(cover$Growing.Season)
colnames(cover)<- c("Cover Crop","Growing Season","Crop Category","Min. Water (in)", "Min. Soil pH","Max. Soil pH","Environmental Benefits","USDA Hardiness Zones","Max. Height (in)","Bloom Time","Perennial?","Salinity Tolerance","Poor Drainage Tolerance", "Use Before Legume?","Forage Quality")
output$covertable <- DT::renderDataTable(server=FALSE, {
DT::datatable(
cover,
options = list(
dom = 'Pfrtip',
columnDefs = list(
list(
searchPanes = list(
show = TRUE,
options = list(
orthogonal = 'sp',
value = JS(
"function(rowData, rowIdx) {
if (type === 'sp') {
return data.split(', ')
}
return data;}"
))),
targets = 7
),
list(
searchPanes = list(show = FALSE), targets = 2:15
)
)
),
extensions = c('Select', 'SearchPanes'),
selection = 'none'
)
})}
ui <- fluidPage(
hr(),
DT::dataTableOutput('covertable')
)
shinyApp(ui = ui, server = server)
【问题讨论】: