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.