knitr::opts_chunk$set(echo = FALSE, ft.keepnext = F, warning = TRUE)
suppressWarnings(suppressMessages(library(dplyr, warn.conflicts = FALSE, quietly = TRUE)))
suppressWarnings(suppressMessages(library(flextable, warn.conflicts = FALSE, quietly = TRUE)))

# user parameters
resdatdt <- params$resdatdt
accdat <- params$accdat
frecomdat <- params$frecomdat
wd <- params$wd
fontname <- params$fontname
rawdata <- params$rawdata
warn <- params$warn
dqofontsize <- params$dqofontsize
tabfontsize <- params$tabfontsize
padding <- params$padding
tabfreper <- params$tabfreper
tabfresum <- params$tabfresum
tabaccper <- params$tabaccper
tabaccsum <- params$tabaccsum
tabcom <- params$tabcom
indflddup <- params$indflddup
indlabdup <- params$indlabdup
indfldblk <- params$indfldblk
indlabblk <- params$indlabblk
indlabins <- params$indlabins

dt <- format(Sys.Date(), "%b %d, %Y") 

set_flextable_defaults(font.size = tabfontsize, padding = padding)

# dqo table theme
thmdqo <- function(x, fontname, dqofontsize, padding){
  flextable::colformat_double(x, na_str = '-') %>% 
    flextable::colformat_char(na_str = '-') %>% 
    flextable::border_inner() %>% 
    flextable::align(align = 'center', part = 'all') %>% 
    flextable::align(align = 'left', j = 1, part = 'all') %>% 
    flextable::fontsize(size = dqofontsize, part = 'all') %>% 
    flextable::padding(padding = padding, part = 'all') %>% 
    flextable::font(fontname = fontname, part = 'all')
}

# notes table
notes <- function(wd, fontname){

  tab <- data.frame(
    x = c('Notes:', NA, NA)
  )

  flextable::flextable(tab) %>% 
    flextable::align(align = 'left', part = 'all') %>%
    flextable::border_remove() %>%
    flextable::width(width = wd) %>% 
    flextable::hline(i = 2:3, part = 'body') %>%
    flextable::padding(padding = 1.5, part = 'all') %>% 
    flextable::delete_part(part = 'header') %>%
    flextable::font(fontname = fontname, part = 'all') %>% 
    flextable::fontsize(size = 11, part = 'all') 

}

QC Review

Organization Name

tab <- data.frame(
  x = c(dt, 'Prepared by:', 'QAPP version:'),
  y = c(NA, NA, NA)
)

flextable::flextable(tab) %>% 
  flextable::align(align = 'left', j = c(1, 2), part = 'all') %>%
  flextable::border_remove() %>%
  flextable::width(j = 1, width = 1.2) %>% 
  flextable::width(j = 2, width = 3) %>% 
  flextable::hline(i = 2:3, j = 2, part = 'body') %>%
  flextable::padding(padding = 1.5, part = 'all') %>% 
  flextable::delete_part(part = 'header') %>%
  flextable::font(fontname = fontname, part = 'all') %>% 
  flextable::fontsize(size = 11, part = 'all') 


Data Quality Objectives

frecomdat %>% 
  dplyr::mutate_if(is.numeric, as.character) %>% 
  dplyr::mutate_all(function(x) ifelse(is.na(x), '-', x)) %>% 
  dplyr::arrange(Parameter, .locale = 'en') %>% 
  flextable::flextable() %>% 
  thmdqo(fontname = fontname, dqofontsize = dqofontsize, padding = padding) %>%
  flextable::width(width = wd / ncol(frecomdat)) %>% 
  flextable::add_header_row(value = c('', 'Frequency %', ''), colwidths = c(1, 5, 1))


accdat %>% 
  dplyr::mutate_if(is.numeric, as.character) %>% 
  dplyr::mutate_all(function(x) ifelse(is.na(x), '-', x)) %>% 
  dplyr::arrange(Parameter, .locale = 'en') %>% 
  flextable::flextable() %>% 
  thmdqo(fontname = fontname, dqofontsize = dqofontsize, padding = padding) %>% 
  flextable::width(width = 1, j = 1) %>% 
  flextable::width(width = (wd -1) / (flextable::ncol_keys(.) - 1), j = 2:flextable::ncol_keys(.)) 


notes(wd, fontname)

\newpage

QC Frequencies for r resdatdt

tabfreper


tabfresum


notes(wd, fontname)

\newpage

QC Accuracy Summary for r resdatdt

tabaccper


tabaccsum


notes(wd, fontname)

\newpage

Data Completeness for r resdatdt

tabcom


notes(wd, fontname)

r if(rawdata){"\\newpage"}

r if(rawdata){paste0("### QC Raw Data for ", resdatdt)}

cat("#### Field Duplicates\n")
indflddup
cat("<br>")
notes(wd, fontname)
cat("<br>")
cat("#### Lab Duplicates\n")
indlabdup
cat("<br>")
notes(wd, fontname)
cat("<br>")
cat("#### Field Blanks\n")
indfldblk
cat("<br>")
notes(wd, fontname)
cat("<br>")
cat("#### Lab Blanks\n")
indlabblk
cat("<br>")
notes(wd, fontname)
cat("<br>")
cat("#### Lab Spikes / Instrument Checks\n")
indlabins
cat("<br>")
notes(wd, fontname)
cat("<br>")


massbays-tech/MassWateR documentation built on April 12, 2025, 7:53 p.m.