'How to add filter on RMarkdown file to filter through all DT data tables?

Context: I have a markdown document with 14 tabs which all include DT tables. My stakeholder is requesting if I can create one filter for all tabs in the document. Screenshot below for some additional context

enter image description here

I understand you can include filters on DT tables, and I have them included. However, that only filters to one table. I am looking for one filter to change all tables within the document.

Code below:

data <-  qc_sales %>%
  mutate(Call_For_Price = ifelse(CFP_FLG == 1, "TRUE", "FALSE"), MGD_ACCT_FLG = ifelse(MGD_ACCT_FLG == "Y", "YES", "NO")) %>% 
 filter(    STR_NBR != '8119'
          , Opened_Quote_Flag == 1
          , LWK_TY_LY_FLG == 'TY'
          , MVNDR_NBR %in% c(vendor_nbr)
          , !SUB_DEPT_NBR %in% c('0025','0028')) %>% 
   select(  QUOTE_DT
          , STORE = STR_NBR
          , ST_CD 
          , BRANCH = BRANCH_NM
          , MANAGED_ACCOUNT = MGD_ACCT_FLG
          , MKT_NBR
          , MKT_NM
          , ASSC_FRST_NM
          , ASSC_LAST_NM
          , STORE_PHONE_NBR = MAIN_STR_PHN_NBR
          , MVNDR_NBR
          , MVNDR_NM
          , SUB_DEPT_NBR
          , SUB_DEPT_DESC
          , PROD_DESC
          , ADD_PROD_DESC
          , Manufacturer_Model_NBR
          , Call_For_Price 
          , QUOTE_DLRS) %>% 
  group_by( QUOTE_DT
          , STORE
          , ST_CD
          , BRANCH
          , MANAGED_ACCOUNT
          , MKT_NBR
          , MKT_NM
          , ASSC_FRST_NM
          , ASSC_LAST_NM
          , STORE_PHONE_NBR
          , MVNDR_NBR
          , MVNDR_NM
          , SUB_DEPT_NBR
          , SUB_DEPT_DESC
          , PROD_DESC
          , ADD_PROD_DESC
          , Manufacturer_Model_NBR
          , Call_For_Price
            ) %>% 
  summarise(QUOTE_DOLLARS =sum(QUOTE_DLRS)
          , SUB_DEPT = MAX(CONCAT(SUB_DEPT_NBR,'-', SUB_DEPT_DESC))
          , MARKET_NBR_NM = MAX(CONCAT(MKT_NBR,'-', MKT_NM))
          , ASSOCIATE_NM = MAX(CONCAT(ASSC_FRST_NM,' ', ASSC_LAST_NM))
          , MVNDR = MAX(CONCAT(MVNDR_NBR,'-', MVNDR_NM))) %>%  
  mutate(QUOTE_DOLLARS = round(QUOTE_DOLLARS, 0)) %>% 
  mutate(QUOTE_DOLLARS = paste0('$',QUOTE_DOLLARS)) %>% 
  ungroup() %>%
  select(  QUOTE_DATE = QUOTE_DT
         , STORE
         , STATE = ST_CD
         , BRANCH
         , MANAGED_ACCOUNT
         , STORE_PHONE_NBR
         , ASSOCIATE_NM
         , SUB_DEPT
         , MVNDR
         , MVNDR_NBR
         , PROD_DESC 
         , ADD_PROD_DESC
         , MODEL_NBR = Manufacturer_Model_NBR
         , QC_ORDER_TYPE = Call_For_Price
         , QUOTE_DOLLARS) %>% 
  arrange(desc(QUOTE_DOLLARS)) %>% 
  collect()
  
data$QUOTE_DOLLARS <- currency(data$QUOTE_DOLLARS, digits = 0L)

data <-  data %>%  
  select( QUOTE_DATE 
         , STORE
         , STATE 
         , BRANCH
         , MANAGED_ACCOUNT
         , STORE_PHONE_NBR
         , ASSOCIATE_NM
         , SUB_DEPT
         , MVNDR
         , MVNDR_NBR
         , PROD_DESC 
         , ADD_PROD_DESC
         , MODEL_NBR 
         , QC_ORDER_TYPE 
         , QUOTE_DOLLARS) %>% 
    arrange(desc(QUOTE_DOLLARS)) %>% 
    mutate(QUOTE_DOLLARS = paste0(QUOTE_DOLLARS)) %>% 
    collect()

data %>% #THIS GENERATES THE DT TABLE WHERE I WOULD LIKE A FILTER TO BE RELELEVANT 
filter(MVNDR_NBR == params$MVNDR_NBR) %>% 
           ungroup() %>%
    select(-MVNDR_NBR, -MVNDR) %>% 
  DT::datatable( 
    filter = 'top',
    extensions = 'Buttons', 
    options = list(dom = 'Bfrtip', 
                   filter = 'top',
                   buttons = c('excel', "csv")))


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source