| validacion | R Documentation |
Crean mensajes de alerta para casos en los que los valores reportados
incumplen relgas de validación. v_rango evalúa casos en los que se exceden
los rangos normales para los parámetros en cuestión (en base a las tablas
rango_param y rango_param_sitio), o a tablas
ingresadas por le usuarie); v_lim evalúa los LD y LC en relación a los
valores y entre sí; v_rel_param evalúa el cumplimiento de las reglas de
validación concernientes a las relaciones entre parámetros (ej.: PT >=
PO4; esta y otras reglas evaluadas son las contenidas en la lista
rel_param). Las funciones usan internamente
v_rango_, v_lim_ y v_rel_param_,
respectivamente.
v_rango( .data, col.ref = "id_muestra", id_matriz = NULL, trangos = NULL, trangos_sitio = NULL ) v_lim(.data, col.ref = "id_muestra") v_rel_param(.data, ...) ## Default S3 method: v_rel_param(.data, col.ref = "id_muestra")
.data |
data.frame que debe incluir ciertas columnas. Ver detalles. |
col.ref |
character. Nombre de la columna que hace de referencia con los datos originales. Ver detalles. |
id_matriz |
integer, opcional. Si '.data“ no incluye una columna con el
id de matriz de los datos, se puede incluir un escalar entero
correspondiente a la matriz deseada (ver |
trangos |
data.frame, opcional. En caso de que la tabla
|
trangos_sitio |
data.frame, opcional. En caso de que la tabla
|
PENDIENTE (TAL VEZ): crear una versión de v_rel_param para trabajar con
planillas de vSIA (campo, lab, pd...)
La data.frame .data debe incluir ciertas columnas. Las tres
fundamentales para todas las funciones de validación son valor (double;
valor reportado para el parámetro), id_muestra (integer; identificador
único de cada muestra; ejs.: sia_muestra,
datos_sia) e id_parametro (integer: identificador único
para cada parámetro; ver sia_parametro). Adicionalmete,
v_rango y v_lim necesitan ciertas columnas en .data:
v_rango id_sitio (integer; identificador único para cada sitio; ver
sitio) e id_matriz (integer; identificador único para
cada matriz; ver sia_matriz)
v_lim limite_deteccion (double; límite de detección reportado) y
limite_cuantificacion (double; límite de cuantificación reportado)
Respecto al argumento col.ref: normalmente id_muestra es usado. Se
asume que cada valor numérico se puede identificar con la columna de
referencia y el parámetro en cuestión (i.e.: id_muestra e id_parametro;
por ejemplo, datos_sia). En vSIA normalmente se usa "nfila"
como referecia.
Sea cual sea el valor de col.ref, los datos en .data deben cumplir con
que toda combinación de col.ref e id_parametro sea única.
data.frame con mensajes de error para las combinaciones de col.ref
e id_parametro para las que no se cumplen reglas de validación
concernientes. Las columnas de esta tabla son:
id_muestra (o col.ref) (integer): identificador único de cada muestra o
dato.
id_parametro (integer): identificador único para cada parámetro; ver
sia_parametro
mensaje (character): mensaje de generado (busca ser informativo sin ser excesivamente extendido)
id_tipo_msj (integer): identificador único para cada tipo de mensaje
(alerta o error); ver tipo_msj
id_subtipo_msj (integer): identificador único para cada subtipo de
mensaje (independientemente de que sea alerta o error); ver
subtipo_msj
# Con datos (largos):
d <- datos_sia %>%
valores_numericos(filtrar_otros = TRUE, metodo = "basico") %>%
dplyr::mutate(
limite_deteccion = as.numeric(siabox:::limpia_num(limite_deteccion)),
limite_cuantificacion = as.numeric(limpia_num(limite_cuantificacion))
) %>%
dplyr::left_join(
dplyr::select(sitio, id_sitio, id_matriz, id_estacion = id_interno),
by = c("id_matriz", "id_estacion")
) %>%
dplyr::select(id_muestra, id_sitio, codigo_pto, fecha_muestra, id_matriz,
id_parametro, param, valor, limite_deteccion,
limite_cuantificacion)
msj_rango <- v_rango(d)
msj_lim <- v_lim(d)
msj_rel_param <- v_rel_param(d)
dplyr::bind_rows(msj_rango, msj_lim, msj_rel_param) %>%
dplyr::group_by(id_subtipo_msj) %>%
dplyr::sample_n(1) %>%
dplyr::left_join(subtipo_msj) %>%
dplyr::select(mensaje, subtipo)
# En vSIA:
listaPD$datos$`NO3 (mg NO3-N/L)`[11] <- "7,83"
listaPD$datos$`NO2 (mg NO2-N/L)`[10] <- "0,71"
listaPD$datos$`pH (sin unid)`[11] <- "0,66"
listaPD$datos$`PT (µg P/L)`
listaPD$datos$`PO4 (µg PO4-P/L)`[2:3] <- c("39", "50")
listaPD$datos$`OD (mg/L)`[15] <- "119"
listaPD$datos$`SatO2 (%)`[15] <- "9,94"
datos_largo <-
largo(listaPD$datos, listaPD$ppd) %>%
valores_numericos(metodo = "basico") %>%
dplyr::mutate(
limite_deteccion = as.numeric(siabox:::limpia_num(limite_deteccion)),
limite_cuantificacion = as.numeric(limpia_num(limite_cuantificacion))
) %>%
# dplyr::filter(id_tipo_dato == 1L) %>%
dplyr::left_join(sia_parametro[c(1, 4)], by = "id_parametro") %>%
dplyr::left_join(
dplyr::filter(sia_estacion, prog_monitoreo == 13L) %>%
dplyr::select(Estacion = codigo_pto, id_estacion = id),
by = "Estacion"
) %>%
dplyr::left_join(
dplyr::filter(sitio, id_matriz == 6L, id_fuente == 1L) %>%
dplyr::select(id_sitio, id_matriz, id_estacion = id_interno),
by = "id_estacion"
) %>%
dplyr::select(nfila, id_sitio, Estacion,
Fecha, id_matriz, id_parametro,
nombre_clave, valor,
limite_deteccion, limite_cuantificacion)
v_rango(datos_largo, "nfila")
v_lim(datos_largo, "nfila")
v_rel_param(datos_largo, "nfila")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.