knitr::opts_chunk$set(echo = TRUE)

Purpose

Check if each variable in every data set is accounted for in the package documentation.

Global code and functions

# Load packages
library(tidyverse)
library(devtools)

# Load most recent version of discretewq
load_all()

Import and Prepare Data

# Create a list of all data sets in discretewq to run functions on
ls_all_datasets <- lst(
  baystudy,
  DJFMP,
  EDSM,
  EMP,
  FMWT,
  NCRO,
  SDO,
  SKT,
  SLS,
  STN,
  suisun,
  twentymm,
  USBR, 
  USGS_CAWSC,
  USGS_SFBS,
  YBFMP
)

List variable names

All names:

map(ls_all_datasets, names)

Just _Sign variables:

ls_sign_vars <- map(ls_all_datasets, ~ select(.x, ends_with("_Sign"))) %>% compact()

map(ls_sign_vars, names)

Inspect Sign variables

Count unique values for each _Sign variable and its associated data variable in each data set that includes them:

ndf_sign_datasets <- 
  tibble(
    df_data = ls_all_datasets[c(names(ls_sign_vars))],
    SignNames = unname(map(df_data, ~ str_subset(names(.x), "_Sign$"))),
    SignNamesData = map(SignNames, ~ append(.x, str_remove(.x, "_Sign$")))
  ) %>% 
  transmute(
    df_data = map2(
      df_data,
      SignNamesData,
      ~ select(.x, any_of(.y)) %>% 
        mutate(across(!ends_with("_Sign"), ~ as.character(if_else(is.na(.x), "NA", "numeric"))))
    )
  )

EMP

for (var in str_subset(names(ndf_sign_datasets$df_data$EMP), "_Sign$", negate = TRUE)) {
  var_sign <- paste0(var, "_Sign")
  ndf_sign_datasets$df_data$EMP %>% 
    count(.data[[var_sign]], .data[[var]]) %>% 
    print()
}

NCRO

for (var in str_subset(names(ndf_sign_datasets$df_data$NCRO), "_Sign$", negate = TRUE)) {
  var_sign <- paste0(var, "_Sign")
  ndf_sign_datasets$df_data$NCRO %>% 
    count(.data[[var_sign]], .data[[var]]) %>% 
    print()
}

USGS_CAWSC

for (var in str_subset(names(ndf_sign_datasets$df_data$USGS_CAWSC), "_Sign$", negate = TRUE)) {
  var_sign <- paste0(var, "_Sign")
  ndf_sign_datasets$df_data$USGS_CAWSC %>% 
    count(.data[[var_sign]], .data[[var]]) %>% 
    print()
}


sbashevkin/discretewq documentation built on July 16, 2025, 6:16 p.m.