
Detectar filas donde señales redundantes se contradicen
Source:R/senales-redundantes.R
detectar_discordancias.RdRecorre las señales declaradas con senal_redundante() e informa las filas
donde las columnas que deberían codificar el mismo hecho no concuerdan dentro
de la ventana declarada.
Usage
detectar_discordancias(
datos,
senales,
max_ejemplos = 5L,
proteger_datos_personales = TRUE,
columnas_personales = character()
)Arguments
- datos
Tabla que se desea examinar.
- senales
Una señal creada por
senal_redundante()o una lista de señales.- max_ejemplos
Máximo de filas concretas que se citan como evidencia.
- proteger_datos_personales
Si los valores de las columnas clasificadas como dato personal se enmascaran en
evidencia.TRUEpor omisión; el número de fila y el nombre de la columna se conservan igual. La clasificación se hace aquí por léxico y por forma —esta función no recibe un perfil—, así que lo que sólo quien conoce los datos sabe personal entra porcolumnas_personales.- columnas_personales
Columnas que traen datos personales, declaradas con la misma forma que acepta
perfilar(): nombres de columna, o un vector con nombre donde el nombre es la columna y el valor es el tipo. Sin ella, una columna que el léxico no reconoce —un legajo interno— publica sus valores enevidencia. Sólo tiene efecto conproteger_datos_personales = TRUE.
Value
Data frame con una fila por señal: senal, columnas, n_filas,
n_evaluadas, n_discordantes, proporcion, ventana y evidencia.
evidencia cita filas concretas, y no publica los valores de una columna
clasificada como dato personal —salvo que se pida lo contrario con
proteger_datos_personales = FALSE—: esos salen como [valor protegido]. El
número de fila y el nombre de la columna se conservan, que es lo que hace
falta para ir a corregirla. Las columnas que no son personales se citan
enteras.
Details
El valor de este diagnóstico es que ninguna columna por separado lo muestra: los tres años de una fila pueden ser todos plausibles y aun así contradecirse entre sí.
Una fila donde alguna de las columnas comparadas está ausente no se cuenta
como discordante ni como concordante: se excluye del universo evaluado, y
n_evaluadas lo declara. Ausencia no es desacuerdo.
Examples
d <- data.frame(
anio_fiscal = c(2023L, 2023L, 2022L),
anio_archivo = c(2023L, 2023L, 2023L)
)
detectar_discordancias(d, senal_redundante(c("anio_fiscal", "anio_archivo")))
#> senal columnas n_filas n_evaluadas
#> 1 anio_fiscal = anio_archivo anio_fiscal, anio_archivo 3 3
#> n_discordantes proporcion ventana
#> 1 1 0.3333333 0
#> evidencia
#> 1 fila 3: anio_fiscal=2022; anio_archivo=2023; universo: 3 de 3 filas con todas las columnas presentes