En este módulo, aprenderás cómo interactuar con APIs (Interfaz de Programación de Aplicaciones) y manejar datos en formato JSON (JavaScript Object Notation) utilizando R. Las APIs permiten a las aplicaciones comunicarse entre sí, y JSON es un formato común para intercambiar datos. Este conocimiento es esencial para trabajar con datos en la web y construir aplicaciones más complejas.
Contenidos
- Introducción a las APIs
- Formato JSON
- Solicitudes HTTP en R
- Manipulación de Datos JSON
- Ejemplos Prácticos
- Ejercicios y Soluciones
- Introducción a las APIs
¿Qué es una API?
Una API es un conjunto de reglas que permite a diferentes programas comunicarse entre sí. Las APIs web permiten a las aplicaciones acceder a datos y servicios a través de la web.
Tipos de APIs
- REST (Representational State Transfer): Utiliza HTTP y es el tipo más común de API web.
- SOAP (Simple Object Access Protocol): Utiliza XML y es más complejo que REST.
- Formato JSON
¿Qué es JSON?
JSON es un formato ligero de intercambio de datos. Es fácil de leer y escribir para los humanos y fácil de parsear y generar para las máquinas.
Ejemplo de JSON
- Solicitudes HTTP en R
Para interactuar con APIs en R, utilizaremos el paquete httr
.
Instalación del Paquete
Realizar una Solicitud GET
response <- GET("https://api.example.com/data") status_code(response) # Verificar el código de estado de la respuesta content(response, "text") # Obtener el contenido de la respuesta
Realizar una Solicitud POST
response <- POST("https://api.example.com/data", body = list(key1 = "value1", key2 = "value2"), encode = "json") status_code(response) content(response, "text")
- Manipulación de Datos JSON
Para trabajar con datos JSON en R, utilizaremos el paquete jsonlite
.
Instalación del Paquete
Parsear JSON
json_data <- '{"name": "John Doe", "age": 30, "isStudent": false, "courses": ["Math", "Science", "History"]}' parsed_data <- fromJSON(json_data) print(parsed_data)
Convertir Datos a JSON
data <- list(name = "John Doe", age = 30, isStudent = FALSE, courses = c("Math", "Science", "History")) json_data <- toJSON(data, pretty = TRUE) print(json_data)
- Ejemplos Prácticos
Ejemplo 1: Obtener Datos de una API Pública
# Obtener datos de una API pública response <- GET("https://api.coindesk.com/v1/bpi/currentprice.json") data <- fromJSON(content(response, "text")) print(data)
Ejemplo 2: Enviar Datos a una API
# Enviar datos a una API response <- POST("https://httpbin.org/post", body = list(name = "John Doe", age = 30), encode = "json") data <- fromJSON(content(response, "text")) print(data)
- Ejercicios y Soluciones
Ejercicio 1: Obtener Datos de una API
Instrucciones:
- Utiliza la API de OpenWeatherMap para obtener el clima actual de una ciudad.
- Parsear los datos JSON y extraer la temperatura actual.
Código:
# Instalar y cargar los paquetes necesarios install.packages("httr") install.packages("jsonlite") library(httr) library(jsonlite) # Realizar la solicitud GET api_key <- "TU_API_KEY" city <- "London" response <- GET(paste0("http://api.openweathermap.org/data/2.5/weather?q=", city, "&appid=", api_key)) # Verificar el código de estado if (status_code(response) == 200) { # Parsear los datos JSON data <- fromJSON(content(response, "text")) # Extraer la temperatura actual temperature <- data$main$temp print(paste("La temperatura actual en", city, "es", temperature, "Kelvin")) } else { print("Error al obtener los datos") }
Ejercicio 2: Enviar Datos a una API
Instrucciones:
- Utiliza la API de httpbin para enviar un JSON con tu nombre y edad.
- Verifica la respuesta de la API.
Código:
# Instalar y cargar los paquetes necesarios install.packages("httr") install.packages("jsonlite") library(httr) library(jsonlite) # Crear los datos a enviar data <- list(name = "Jane Doe", age = 25) # Realizar la solicitud POST response <- POST("https://httpbin.org/post", body = data, encode = "json") # Verificar el código de estado if (status_code(response) == 200) { # Parsear los datos JSON de la respuesta response_data <- fromJSON(content(response, "text")) print(response_data) } else { print("Error al enviar los datos") }
Conclusión
En este módulo, has aprendido cómo interactuar con APIs y manejar datos en formato JSON utilizando R. Ahora puedes realizar solicitudes HTTP, parsear y generar JSON, y trabajar con datos de la web. Estos conocimientos te permitirán construir aplicaciones más complejas y acceder a una amplia gama de datos disponibles en la web.
En el próximo módulo, profundizaremos en conceptos avanzados de programación en R, incluyendo la escritura de funciones y la depuración de código. ¡Sigue adelante!
Programación en R: De Principiante a Avanzado
Módulo 1: Introducción a R
- Introducción a R y RStudio
- Sintaxis Básica de R
- Tipos y Estructuras de Datos
- Operaciones y Funciones Básicas
- Importación y Exportación de Datos
Módulo 2: Manipulación de Datos
- Vectores y Listas
- Matrices y Arreglos
- Data Frames
- Factores
- Manipulación de Datos con dplyr
- Manipulación de Cadenas
Módulo 3: Visualización de Datos
- Introducción a la Visualización de Datos
- Gráficos Base R
- Fundamentos de ggplot2
- ggplot2 Avanzado
- Visualizaciones Interactivas con plotly
Módulo 4: Análisis Estadístico
- Estadísticas Descriptivas
- Distribuciones de Probabilidad
- Pruebas de Hipótesis
- Correlación y Regresión
- ANOVA y Pruebas Chi-Cuadrado
Módulo 5: Manejo Avanzado de Datos
- Manejo de Fechas y Tiempos
- Reestructuración de Datos
- Trabajo con Grandes Conjuntos de Datos
- Web Scraping
- APIs y JSON
Módulo 6: Conceptos Avanzados de Programación
- Escritura de Funciones
- Depuración y Manejo de Errores
- Programación Orientada a Objetos en R
- Programación Funcional
- Computación Paralela
Módulo 7: Aprendizaje Automático con R
- Introducción al Aprendizaje Automático
- Preprocesamiento de Datos
- Aprendizaje Supervisado
- Aprendizaje No Supervisado
- Evaluación y Ajuste de Modelos
Módulo 8: Temas Especializados
- Análisis de Series Temporales
- Análisis de Datos Espaciales
- Minería de Textos y Procesamiento de Lenguaje Natural
- Bioinformática con R
- Análisis de Datos Financieros