Пакетный поиск по нескольким ключевым словам в таблицах Shiny DT - PullRequest
0 голосов
/ 21 апреля 2020

Кто-нибудь знает, возможно ли выполнить пакетный поиск по ключевым словам в DT, который можно датировать в R? Например, в приведенном ниже коде можно ли искать, например, 3 указанных c машины сразу в поле поиска? В идеале я хотел бы сразу вставить в поле поиска «Mazda RX4», «Mer c 230», «Fiat 128», а затем увидеть результаты в таблице ниже без необходимости искать каждый из них по отдельности.

Я работаю в области биоинформатики, и мои коллеги хотели бы выполнить поиск в наших интерактивных таблицах с указанным c списком белков / генов и c без необходимости вставлять каждый из них по отдельности.

Пример кода:


## example taken from https://rstudio.github.io/DT/007-search.html
library(DT)
mtcars2 = mtcars[, c(1:5, 9)]
mtcars2$am = factor(mtcars$am, c(0, 1), c('automatic', 'manual'))
# search for Ma or Me
dt <- datatable(
  mtcars2, colnames = c('model' = 1),
  filter = list(position = 'top', clear = FALSE),
  options = list(
    search = list(regex = TRUE, caseInsensitive = TRUE),
    pageLength = 5
  )
)




## simple Shiny app with datatable
ui <- fluidPage(
  fluidRow(
    DT::dataTableOutput("table")
  )
)

server <- function(input, output) {
  output$table <- DT::renderDataTable(dt)
}

shinyApp(ui = ui, server = server)

> sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib

locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8

attached base packages:
[1] stats4    parallel  stats     graphics  grDevices utils     datasets  methods  
[9] base     

other attached packages:
 [1] ggplot2_3.3.0        DT_0.13              rsconnect_0.8.16     shinythemes_1.1.2   
 [5] dplyr_0.8.5          shiny_1.4.0.2        BiocParallel_1.20.1  MLInterfaces_1.66.5 
 [9] cluster_2.1.0        annotate_1.64.0      XML_3.99-0.3         AnnotationDbi_1.48.0
[13] IRanges_2.20.2       MSnbase_2.12.0       ProtGenerics_1.18.0  S4Vectors_0.24.4    
[17] mzR_2.20.0           Rcpp_1.0.4.6         Biobase_2.46.0       BiocGenerics_0.32.0 

dt example search table

1 Ответ

1 голос
/ 21 апреля 2020

для Пакетного поиска, добавьте трубу | между именами нескольких машин, чтобы регулярное выражение могло их распознать.

mtcars2 = mtcars[, c(1:5, 9)]
mtcars2$am = factor(mtcars$am, c(0, 1), c('automatic', 'manual'))
# search for Ma or Me
datatable(
  mtcars2, colnames = c('model' = 1),
  filter = list(position = 'top', clear = FALSE),
  options = list(
    search = list(regex = TRUE, caseInsensitive = FALSE, search = 'Maz|Hor'),
    pageLength = 5
  )
)

Приведенный выше код покажет, что все машины едут с «Мазом» или «Хор». .

...