This function automates replacing unquantified values in residue time and depth series. For time series, the function performs part of the residue processing proposed in the FOCUS kinetics guidance for parent compounds and metabolites. For two-dimensional residue series over time and depth, it automates the proposal of Boesten et al (2015).

set_nd_nq(res_raw, lod, loq = NA, time_zero_presence = FALSE)

set_nd_nq_focus(
  res_raw,
  lod,
  loq = NA,
  set_first_sample_nd = TRUE,
  first_sample_nd_value = 0,
  ignore_below_loq_after_first_nd = TRUE
)

Arguments

res_raw

Character vector of a residue time series, or matrix of residue values with rows representing depth profiles for a specific sampling time, and columns representing time series of residues at the same depth. Values below the limit of detection (lod) have to be coded as "nd", values between the limit of detection and the limit of quantification, if any, have to be coded as "nq". Samples not analysed have to be coded as "na". All values that are not "na", "nd" or "nq" have to be coercible to numeric

lod

Limit of detection (numeric)

loq

Limit of quantification(numeric). Must be specified if the FOCUS rule to stop after the first non-detection is to be applied

time_zero_presence

Do we assume that residues occur at time zero? This only affects samples from the first sampling time that have been reported as "nd" (not detected).

set_first_sample_nd

Should the first sample be set to "first_sample_nd_value" in case it is a non-detection?

first_sample_nd_value

Value to be used for the first sample if it is a non-detection

ignore_below_loq_after_first_nd

Should we ignore values below the LOQ after the first non-detection that occurs after the quantified values?

Value

A numeric vector, if a vector was supplied, or a numeric matrix otherwise

Functions

  • set_nd_nq_focus: Set non-detects in residue time series according to FOCUS rules

References

Boesten, J. J. T. I., van der Linden, A. M. A., Beltman, W. H. J. and Pol, J. W. (2015). Leaching of plant protection products and their transformation products; Proposals for improving the assessment of leaching to groundwater in the Netherlands — Version 2. Alterra report 2630, Alterra Wageningen UR (University & Research centre)

FOCUS (2014) Generic Guidance for Estimating Persistence and Degradation Kinetics from Environmental Fate Studies on Pesticides in EU Registration, Version 1.1, 18 December 2014, p. 251

Examples

# FOCUS (2014) p. 75/76 and 131/132 parent_1 <- c(.12, .09, .05, .03, "nd", "nd", "nd", "nd", "nd", "nd") set_nd_nq(parent_1, 0.02)
#> [1] 0.12 0.09 0.05 0.03 0.01 NA NA NA NA NA
parent_2 <- c(.12, .09, .05, .03, "nd", "nd", .03, "nd", "nd", "nd") set_nd_nq(parent_2, 0.02)
#> [1] 0.12 0.09 0.05 0.03 0.01 0.01 0.03 0.01 NA NA
set_nd_nq_focus(parent_2, 0.02, loq = 0.05)
#> [1] 0.12 0.09 0.05 0.03 0.01 NA NA NA NA NA
parent_3 <- c(.12, .09, .05, .03, "nd", "nd", .06, "nd", "nd", "nd") set_nd_nq(parent_3, 0.02)
#> [1] 0.12 0.09 0.05 0.03 0.01 0.01 0.06 0.01 NA NA
set_nd_nq_focus(parent_3, 0.02, loq = 0.05)
#> [1] 0.12 0.09 0.05 0.03 0.01 0.01 0.06 0.01 NA NA
metabolite <- c("nd", "nd", "nd", 0.03, 0.06, 0.10, 0.11, 0.10, 0.09, 0.05, 0.03, "nd", "nd") set_nd_nq(metabolite, 0.02)
#> [1] NA NA 0.01 0.03 0.06 0.10 0.11 0.10 0.09 0.05 0.03 0.01 NA
set_nd_nq_focus(metabolite, 0.02, 0.05)
#> [1] 0.00 NA 0.01 0.03 0.06 0.10 0.11 0.10 0.09 0.05 0.03 0.01 NA
# # Boesten et al. (2015), p. 57/58 table_8 <- matrix( c(10, 10, rep("nd", 4), 10, 10, rep("nq", 2), rep("nd", 2), 10, 10, 10, "nq", "nd", "nd", "nq", 10, "nq", rep("nd", 3), "nd", "nq", "nq", rep("nd", 3), rep("nd", 6), rep("nd", 6)), ncol = 6, byrow = TRUE) set_nd_nq(table_8, 0.5, 1.5, time_zero_presence = TRUE)
#> [,1] [,2] [,3] [,4] [,5] [,6] #> [1,] 10.00 10.00 0.25 0.25 NA NA #> [2,] 10.00 10.00 1.00 1.00 0.25 NA #> [3,] 10.00 10.00 10.00 1.00 0.25 NA #> [4,] 1.00 10.00 1.00 0.25 NA NA #> [5,] 0.25 1.00 1.00 0.25 NA NA #> [6,] NA 0.25 0.25 NA NA NA #> [7,] NA NA NA NA NA NA
table_10 <- matrix( c(10, 10, rep("nd", 4), 10, 10, rep("nd", 4), 10, 10, 10, rep("nd", 3), "nd", 10, rep("nd", 4), rep("nd", 18)), ncol = 6, byrow = TRUE) set_nd_nq(table_10, 0.5, time_zero_presence = TRUE)
#> [,1] [,2] [,3] [,4] [,5] [,6] #> [1,] 10.00 10.00 0.25 NA NA NA #> [2,] 10.00 10.00 0.25 NA NA NA #> [3,] 10.00 10.00 10.00 0.25 NA NA #> [4,] 0.25 10.00 0.25 NA NA NA #> [5,] NA 0.25 NA NA NA NA #> [6,] NA NA NA NA NA NA #> [7,] NA NA NA NA NA NA