Para cada columna temporal propone una frecuencia en días. La confianza es
el mínimo entre la contigüidad de las fechas sobre la grilla propuesta y la
cobertura del período: una coincidencia breve dentro de una serie muy
dispersa no puede producir confianza alta. Ambas componentes se devuelven
para que la propuesta sea auditable. La propuesta nunca queda confirmada
automáticamente. calendario usa días
ISO: 1 es lunes y 7 domingo; así una oficina puede declarar 1:5 sin que la
ausencia de fines de semana se interprete como hueco. Las fechas-hora se
llevan a fecha civil en UTC para que el resultado no dependa de la zona del
equipo que ejecuta el análisis.
Usage
analizar_tiempo(
datos,
perfil = NULL,
columnas = NULL,
calendario = 1:7,
frecuencia_dias = NULL,
max_huecos = 20L,
max_columnas = 50L
)Arguments
- datos
Tabla que se desea examinar.
- perfil
Perfil opcional de los mismos datos.
- columnas
Columnas temporales;
NULLusa clases e inferencia.- calendario
Días de semana esperados, enteros entre 1 y 7.
- frecuencia_dias
Frecuencia entera conocida en días. Si es
NULL, se propone la moda de los intervalos positivos.- max_huecos
Máximo de grupos de huecos devueltos por columna.
- max_columnas
Máximo de columnas temporales analizadas.
Value
Objeto analisis_temporal con resumen, dias_semana, huecos y
propuestas. El recorte de huecos queda en resumen; el de columnas, en
atributos del objeto. resumen agrega tres campos sobre el alcance del
resumen, con el mismo vocabulario que usa perfilar() sobre la misma
columna: n_fechas_excluidas_parseo cuenta los valores presentes que
ningún formato confirmado pudo convertir y que por eso quedaron fuera;
n_fechas_excluidas_granularidad, cuántos de ésos son períodos de mes —
2024-02 y sus formas—, que no se convierten a propósito porque no
nombran un día; y estado_resumen vale "calculados_sobre_dias" cuando
hubo períodos de mes, "calculados_sobre_fechas_parseadas" cuando sólo
hubo valores ilegibles, y "calculados" cuando no quedó nada afuera. Los
tres se informan siempre, haya muestreo o no, porque el descarte tampoco
depende del muestreo. Un NA no entra en esta cuenta: es una ausencia
declarada y se informa como faltante, no como valor que no se pudo leer.
Una columna mixta —días y meses— sí se resume, sobre sus fechas
completas. Sólo cuando ningún formato confirmado nombra un día no hay serie
diaria que construir; entonces la columna no aparece en resumen, y se
declara en los atributos columnas_omitidas y columnas_sin_serie_diaria
en vez de desaparecer.
Si se recibe un perfil que declara proteccion para una columna temporal,
sus rangos y huecos se protegen tambien en esta llamada directa, con el
mismo texto que usa analizar(). Sin perfil no hay una declaracion que
leer y el resumen conserva sus fechas.
Examples
fechas <- as.Date("2026-01-01") + c(0:4, 20:24)
analizar_tiempo(data.frame(fecha = fechas))
#> $resumen
#> columna n_presentes n_fechas_distintas n_duplicados_temporales fecha_minima
#> 1 fecha 10 10 0 2026-01-01
#> fecha_maxima n_fechas_excluidas_parseo n_fechas_excluidas_granularidad
#> 1 2026-01-25 0 0
#> estado_resumen monotonicidad cobertura_periodo n_fechas_esperadas_ausentes
#> 1 calculados 1 0.4 15
#> n_fechas_fuera_calendario n_grupos_huecos huecos_truncados
#> 1 0 1 FALSE
#>
#> $dias_semana
#> columna dia_iso dia frecuencia proporcion esperado
#> 1 fecha 1 lunes 1 0.1 TRUE
#> 2 fecha 2 martes 0 0.0 TRUE
#> 3 fecha 3 miercoles 1 0.1 TRUE
#> 4 fecha 4 jueves 2 0.2 TRUE
#> 5 fecha 5 viernes 2 0.2 TRUE
#> 6 fecha 6 sabado 2 0.2 TRUE
#> 7 fecha 7 domingo 2 0.2 TRUE
#>
#> $huecos
#> columna desde hasta n_esperados_ausentes duracion_dias
#> 1 fecha 2026-01-06 2026-01-20 15 15
#> frecuencia_dias calendario
#> 1 1 1,2,3,4,5,6,7
#>
#> $propuestas
#> columna frecuencia_dias confianza contiguidad cobertura_periodo calendario
#> 1 fecha 1 0.4 0.8888889 0.4 1,2,3,4,5,6,7
#> confirmada evidencia
#> 1 FALSE Moda de intervalos: 1 dias; 9 intervalos observados.
#>
#> attr(,"class")
#> [1] "analisis_temporal"
#> attr(,"columnas_analizadas")
#> [1] "fecha"
#> attr(,"columnas_omitidas")
#> character(0)
#> attr(,"columnas_sin_serie_diaria")
#> character(0)
#> attr(,"truncado")
#> [1] FALSE
