using Dates
4 Módulos y librerías
Un aspecto clave en los lenguajes de programación para ciencia de datos es el uso de librerías. Estas nos permiten atajar retos que otros ya han enfrentado y hacer uso de funciones ya creadas para el objeto.
La carga de módulos se hace mediante el comando using
using Modulo
Veremos algunos módulos base que nos ayudarán con ciertas structuras de datos complejas de manejar.
4.1 Fechas
Para poder gestionar fechas deberemos importar un módulo específico
Existen dos tipos de fecha que deberemos manejar. Date
para fechas sin tiempo informado
Date(2025, 7, 3) # año, mes, dia
2025-07-03
Y DateTime
para fechas en las que dispongamos de hora.
DateTime(2025, 7, 3, 12, 0) # año, mes, dia, hora, minutos
2025-07-03T12:00:00
Podremos también indicarlos basado en formato, como segundo argumento de nuestros dos tipos base.
= DateFormat("yyyymmdd")
format Date("19870913", format)
1987-09-13
Intervalos
Como siempre con las fechas, podremos acceder a intervalos temporales (o periodos).
= Date(2025, 7, 1)
fecha = today() - fecha periodo
6 days
Podemos ver que tipo soporta nuestra variable resultante.
typeof(periodo)
Day
La función today()
nos devuelve un Day
por lo que si queremos más precisión, deberemos convertirlo a DateTime
y usar now()
en nuestra comparativa para que la resta sea entre los mismos tipos.
= DateTime(2025, 7, 1, 12, 1, 3, 120) # precisión de microsegundos
fecha_hora_ms = now() - fecha_hora_ms lapso
518776710 milliseconds
typeof(lapso)
Millisecond
4.2 Descargas
Existe otro módulo que nos vendrá muy bien a la hora de descargarnos ficheros.
using Downloads
Podremos indicarle a la función Downloads.download()
la dirección desde la que descargar nuestro conjunto de datos.
= "https://raw.githubusercontent.com/IraitzM/ciencia-datos-julia/refs/heads/main/parts/firststeps/ejemplo.txt"
url
= Downloads.download(url) # creamos un fichero temporal fichero_proyecto
"/tmp/jl_z6xk9a3mj0"
Y con funciones como readlines
leer su contenido.
readlines(fichero_proyecto)
1-element Vector{String}:
"Hola desde un fichero!"
Vemos que devuelve una estructura de Vector con cadenas de texto (String) con el contenido del fichero.
4.3 Aleatorios
Trabajar con números aleatorios es habitual en ciencia de datos, y para ello podemos recurrir al módulo Random
using Random
Random.seed!(1234)
Random.randn()
-0.3597289068234817
4.4 Paquetes habituales
En el caso de tratarse de módulos no disponibles como parte de la librería standard, deberemos recurrir al gestor de paquetes e instalarlas.
using Pkg;
Pkg.add("Libreria.jl")
Tal y como veíamos en la introducción estos paquetes serán añadidos a los dos ficheros clave que nos permiten reproducir nuestro entorno en otra máquina.
Las librerías que emplearemos en líneas generales son:
- Manipulación de datos: DataFrames.jl y DataFramesMeta.jl
- Visualización: Plots.jl
Todos estos paquetes y más están disponibles en https://juliapackages.com/.