Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
741433f
Update reference files
github-actions[bot] Mar 3, 2026
8fc1480
Update example data
github-actions[bot] Mar 3, 2026
bf41ea0
Update reference files
github-actions[bot] Mar 4, 2026
35eb8ef
Update example data
github-actions[bot] Mar 4, 2026
da88c96
Update reference files
github-actions[bot] Mar 5, 2026
29b6907
Update example data
github-actions[bot] Mar 5, 2026
31de6c1
Update reference files
github-actions[bot] Mar 6, 2026
780ccd9
Update example data
github-actions[bot] Mar 6, 2026
53596b3
Update reference files
github-actions[bot] Mar 7, 2026
f9b05db
Update example data
github-actions[bot] Mar 7, 2026
71ab48b
Update reference files
github-actions[bot] Mar 8, 2026
c062b75
Update example data
github-actions[bot] Mar 8, 2026
aa2a027
Update reference files
github-actions[bot] Mar 9, 2026
1acffb8
Update example data
github-actions[bot] Mar 9, 2026
9b0dac7
Update reference files
github-actions[bot] Mar 10, 2026
2054395
Update example data
github-actions[bot] Mar 10, 2026
8f2d0f4
Update reference files
github-actions[bot] Mar 11, 2026
cdc48a0
Update example data
github-actions[bot] Mar 11, 2026
23a6dc1
Merge branch 'develop' into maintenance-branch
cristinamullin Mar 11, 2026
dd26533
Update reference files
github-actions[bot] Mar 12, 2026
c43e9c3
Update example data
github-actions[bot] Mar 12, 2026
6b6902c
Address minor bugs
cristinamullin Mar 12, 2026
d538c21
Merge branch 'develop' into maintenance-branch
cristinamullin Mar 12, 2026
943afcd
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 12, 2026
c949617
Update WORDLIST
cristinamullin Mar 12, 2026
a6761bd
address check notes
cristinamullin Mar 12, 2026
7fd513b
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 12, 2026
dbe3838
Update TADA_SimpleCensoredMethods.Rd
cristinamullin Mar 12, 2026
7d4a184
Update reference files
github-actions[bot] Mar 13, 2026
395de32
Update example data
github-actions[bot] Mar 13, 2026
ac115b6
update refs and example data
cristinamullin Mar 13, 2026
9d05c34
Update reference files
github-actions[bot] Mar 14, 2026
3d9f4d0
Update example data
github-actions[bot] Mar 14, 2026
8f21e1b
Update reference files
github-actions[bot] Mar 15, 2026
837db0f
Update reference files
github-actions[bot] Mar 16, 2026
e1e4c73
Update example data
github-actions[bot] Mar 16, 2026
cd74e66
Update reference files
github-actions[bot] Mar 17, 2026
4555f15
Update reference files
github-actions[bot] Mar 18, 2026
7df02b5
Update reference files
github-actions[bot] Mar 19, 2026
7e23319
Update reference files
github-actions[bot] Mar 20, 2026
dc19d5f
Update example data
github-actions[bot] Mar 20, 2026
5041c78
Update reference files
github-actions[bot] Mar 21, 2026
0730424
Update reference files
github-actions[bot] Mar 22, 2026
686cddf
Update example data
github-actions[bot] Mar 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ readme.html
^vignettes/articles/*_files$
^air\.toml$
^dev$
.pre-commit-config.yaml
489 changes: 318 additions & 171 deletions R/CensoredDataSuite.R

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion R/MaintenanceScheduled.R
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
{
TADA_UpdateATTAINSOrgIDsRef()
TADA_UpdateATTAINSParamUseOrgRef() # takes a long time
TADA_UpdateATTAINSParamToWQPCharRef()
},
error = function(e) {
message("Error updating ATTAINS reference tables: ", e$message)
Expand Down
104 changes: 48 additions & 56 deletions R/ResultFlagsDependent.R
Original file line number Diff line number Diff line change
Expand Up @@ -875,7 +875,6 @@ TADA_PairReplicates <- function(
return(.data)
}


#' Check for results with suspect result Measure Qualifier Codes
#'
#' This function checks for and flags or removes samples denoted as suspect
Expand Down Expand Up @@ -943,19 +942,26 @@ TADA_FlagMeasureQualifierCode <- function(
# Check if the input .data is NULL
if (is.null(.data)) {
warning(
"TADA_FindQCActivities: The input dataframe is NULL. Please provide a valid dataframe."
"TADA_FlagMeasureQualifierCode: The input dataframe is NULL. Please provide a valid dataframe."
)
return(NULL)
}

# check .data is data.frame and has required columns
TADA_CheckColumns(.data, "MeasureQualifierCode")
# (Optional) also require ResultIdentifier if define = TRUE because it's used below
if (isTRUE(define)) {
TADA_CheckColumns(.data, "ResultIdentifier")
}

# check that clean is boolean
TADA_CheckType(clean, "logical")
# check flaggedonly is boolean
TADA_CheckType(flaggedonly, "logical")

# check .data MeasureQualifierCode is not all NA. If it is, don't run function and return .data
if (all(is.na(.data$MeasureQualifierCode))) {
print(
message(
"TADA_FlagMeasureQualifierCode: Dataframe does not include any information (all NAs) in MeasureQualifierCode."
)

Expand All @@ -964,13 +970,12 @@ TADA_FlagMeasureQualifierCode <- function(
dplyr::mutate(TADA.MeasureQualifierCode.Def = "NA - Not Applicable")

.data <- TADA_OrderCols(.data)

return(.data)
}

# execute function after checks are passed
# delete existing flag column
if (("TADA.MeasureQualifierCode.Flag" %in% colnames(.data)) == TRUE) {
if ("TADA.MeasureQualifierCode.Flag" %in% colnames(.data)) {
.data <- dplyr::select(.data, -TADA.MeasureQualifierCode.Flag)
}

Expand All @@ -983,13 +988,8 @@ TADA_FlagMeasureQualifierCode <- function(
Description
)

# add TADA.MeasureQualifierCode, qualifier code definitions
# Create TADA.MeasureQualifierCode by concatenating MeasureQualifierCode with description from MeasureQualifierCodeRef.
if (define == FALSE) {
.data <- .data
}

if (define == TRUE) {
# add qualifier code definitions
if (isTRUE(define)) {
mqc.ref <- qc.ref |>
dplyr::select(MeasureQualifierCode, Description) |>
dplyr::group_by(MeasureQualifierCode) |>
Expand All @@ -1006,15 +1006,14 @@ TADA_FlagMeasureQualifierCode <- function(
merge(mqc.ref) |>
dplyr::group_by(ResultIdentifier) |>
dplyr::summarize(
TADA.MeasureQualifierCode.Def = paste(Concat, collapse = "; ")
TADA.MeasureQualifierCode.Def = paste(Concat, collapse = "; "),
.groups = "drop"
)

.data$TADA.MeasureQualifierCode.Def <- mqc.TADA$TADA.MeasureQualifierCode.Def[match(
.data$ResultIdentifier,
mqc.TADA$ResultIdentifier
)]

rm(mqc.ref, mqc.TADA)
}

# Populate flag column in data
Expand All @@ -1023,36 +1022,37 @@ TADA_FlagMeasureQualifierCode <- function(
qc.ref$TADA.MeasureQualifierCode.Flag
)

# Set names with transformations
names(flag.lists) <- tolower(names(flag.lists))
names(flag.lists) <- stringr::str_remove_all(names(flag.lists), "-")
names(flag.lists) <- stringr::str_remove_all(names(flag.lists), " ")
# Normalize list names
names(flag.lists) <- names(flag.lists) |>
tolower() |>
stringr::str_remove_all("-") |>
stringr::str_remove_all(" ")

flag.data <- .data |>
dplyr::mutate(
MeasureQualifierCode.Split = strsplit(MeasureQualifierCode, ";"),
TADA.MeasureQualifierCode.Flag = purrr::map_chr(
MeasureQualifierCode.Split,
~ dplyr::case_when(
any(.x %in% flag.lists$suspect) ~ "Suspect",
any(.x %in% flag.lists$nondetect) ~ "Non-Detect",
any(.x %in% flag.lists$overdetect) ~ "Over-Detect",
any(.x %in% flag.lists$pass) ~ "Pass",
any(.x %in% flag.lists$notreviewed) ~ "Not Reviewed",
any(.x %in% flag.lists$suspect, na.rm = TRUE) ~ "Suspect",
any(.x %in% flag.lists$nondetect, na.rm = TRUE) ~ "Non-Detect",
any(.x %in% flag.lists$overdetect, na.rm = TRUE) ~ "Over-Detect",
any(.x %in% flag.lists$pass, na.rm = TRUE) ~ "Pass",
any(.x %in% flag.lists$notreviewed, na.rm = TRUE) ~ "Not Reviewed",
TRUE ~ NA_character_
)
)
) |>
dplyr::select(-MeasureQualifierCode.Split)

flag.data <- flag.data |> dplyr::distinct()
dplyr::select(-MeasureQualifierCode.Split) |>
dplyr::distinct()

# identify any ResultMeasureQualifier Codes not in reference table
# identify any MeasureQualifierCodes not in reference table
codes <- stringr::str_split(unique(.data$MeasureQualifierCode), ";") |>
unlist() |>
unique()
codes <- codes[!is.na(codes)] # drop NA to avoid if(NA) error

if (any(!codes %in% qc.ref$MeasureQualifierCode)) {
if (length(codes) > 0 && any(!codes %in% qc.ref$MeasureQualifierCode)) {
missing_codes <- codes[!codes %in% qc.ref$MeasureQualifierCode]
missing_codes_df <- data.frame(
MeasureQualifierCode = missing_codes,
Expand All @@ -1061,62 +1061,54 @@ TADA_FlagMeasureQualifierCode <- function(
)
qc.ref <- rbind(qc.ref, missing_codes_df)
missing_codes <- paste(missing_codes, collapse = ", ")
print(paste0(
message(paste0(
"TADA_FlagMeasureQualifierCode: MeasureQualifierCode column in dataset contains value(s) ",
missing_codes,
" which is/are not represented in the MeasureQualifierCode WQX domain table. These data records are placed under the TADA.MeasureQualifierCode.Flag: 'uncategorized'. Please contact TADA administrators to resolve."
" which are not represented in the MeasureQualifierCode WQX domain table. These data records are placed under the TADA.MeasureQualifierCode.Flag: 'Not Reviewed'. Please contact TADA administrators to resolve."
))
}

## rename ResultMeasureQualifier NA values to Pass in TADA.MeasureQualifierCode.Flag column (no longer needed cm 1/4/24)
# flag.data["TADA.MeasureQualifierCode.Flag"][is.na(flag.data["MeasureQualifierCode"])] <- "Pass"

# clean dataframe
# if clean = FALSE, return full dataframe
if (clean == FALSE) {
if (!isTRUE(clean)) {
clean.data <- flag.data
}
# if clean = TRUE, remove flagged data
if (clean == TRUE) {
} else {
clean.data <- dplyr::filter(
flag.data,
flag.data$TADA.MeasureQualifierCode.Flag != "Suspect"
)
}

# if flaggedonly = FALSE, return full clean dataframe
if (flaggedonly == FALSE) {
# return full/filtered dataframe
if (!isTRUE(flaggedonly)) {
final.data <- clean.data
# if the dataframe is empty, print message
if (nrow(final.data) == 0) {
print(
"TADA_FlagMeasureQualifierCode: This dataframe is empty because all rows contained Suspect samples that were removed"
message(
"TADA_FlagMeasureQualifierCode: This dataframe is empty because all rows contained Suspect samples that were removed."
)
}
# if there are no flags, print message
if (sum(final.data$TADA.MeasureQualifierCode.Flag != "Suspect") == 0) {
print(
if (
sum(
final.data$TADA.MeasureQualifierCode.Flag != "Suspect",
na.rm = TRUE
) ==
0
) {
message(
"TADA_FlagMeasureQualifierCode: Suspect samples have been removed or were not present in the input dataframe. Returning dataframe with TADA.MeasureQualifierCode.Flag column for tracking."
)
}
}

# if flaggedonly = TRUE, return clean dataframe filtered to only the flagged rows
if (flaggedonly == TRUE) {
} else {
final.data <- dplyr::filter(
clean.data,
TADA.MeasureQualifierCode.Flag == "Suspect"
)

# if the dataframe is empty, print message
if (nrow(final.data) == 0) {
print(
"TADA_FlagMeasureQualifierCode: This dataframe is empty because either we did not find any Suspect samples or because they were all removed"
message(
"TADA_FlagMeasureQualifierCode: This dataframe is empty because either we did not find any Suspect samples or because they were all removed."
)
}
}

final.data <- TADA_OrderCols(final.data)
# return final dataframe
return(final.data)
}
1 change: 0 additions & 1 deletion R/Utilities.R
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,6 @@ utils::globalVariables(c(
"CST_CAS_NO",
"PDFPGNO",
"SOURCE",
"TADA_UpdateATTAINSParamToWQPCharRef",
"WQXCharAliasRef",
"WQX_CAS_NO",
"percent_match_CST_ATTAINS",
Expand Down
Binary file modified data/Data_6Tribes_5y.rda
Binary file not shown.
Binary file modified data/Data_6Tribes_5y_Harmonized.rda
Binary file not shown.
Binary file modified data/Data_HUC8_02070004_Mod1Output.rda
Binary file not shown.
Binary file modified data/Data_MT_AUMLRef.rda
Binary file not shown.
Binary file modified data/Data_MT_AU_UsesRef.rda
Binary file not shown.
Binary file modified data/Data_MT_AU_UsesRef_Water.rda
Binary file not shown.
Binary file modified data/Data_MT_MissoulaCounty.rda
Binary file not shown.
Binary file modified data/Data_Nutrients_UT.rda
Binary file not shown.
Binary file modified data/Data_R5_TADAPackageDemo.rda
Binary file not shown.
4 changes: 4 additions & 0 deletions inst/WORDLIST
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ AssessmentUnitStatus
AssignUsesToAU
AssignUsesToWaterType
AutoClean
BDL
BPQL
BiasValue
BigDataRetrieval
BiologicalIntentName
Expand Down Expand Up @@ -128,6 +130,8 @@ Geospatial
GetATTAINSAUMLCrosswalk
GetATTAINSByAUID
GetCharacteristicRef
GetDetCondRef
GetDetLimitRef
GetNutrientSummationRef
GetSynonymRef
HMW
Expand Down
Binary file modified inst/extdata/AKAllotments.dbf
Binary file not shown.
Binary file modified inst/extdata/AKVillages.dbf
Binary file not shown.
Loading