# 1. Descargar el archivo de Excel
url <- "https://datos.produccion.gob.ar/dataset/369e2ef5-f8bc-4b37-a3e7-f7ad8d5fceb7/resource/64aa7c24-2adc-46f1-b60d-1d34e2c7dbee/download/las-50-empresas-mas-innovadoras-entre-2013-y-2019.xlsx"
download.file(url, destfile = "empresas-que-mas-invierten-en-innovacion.xlsx")
# 2. Leer el archivo de Excel
library(readxl)
empresas <- read_excel("empresas-que-mas-invierten-en-innovacion.xlsx")
# 3. Explorar la estructura del data.frame
str(empresas)
# 4. Contestar
# 4.1. Tiene 5 columnas y 50 fila
# 4.2. empresa es caracter, pais_origen es caracter, sector_productivo es caracter, inversion_acumulada_2013_2019_EUR es numerico y varion_porcentual_2013_2019 es numerico. Si el tipo de dato es correcto.
# 4.3 Se uso la funcion read_excel() del paquete readxl
Appendix C — Soluciones de ejercicios
Este anexo detalla resultados validos para todos los ejercicios desde el capitulo 1 al 6. Recuerda que pueden existir mas de una manera de resolver los ejercicios de forma correcta.
C.0.1 Capitulo 3 - Lectura de datos
En el portal de datos de Argentina encontramos muchos conjuntos de datos con informacion oficial. Vamos a descargar y leer un archivo de Excel.
Dirigirse a esta pagina web con datos abiertos: https://datos.gob.ar/dataset/produccion-innovacion-productiva-empresas-que-mas-invierten-id-nivel-mundial
Realizar los pasos necesarios para descargar el archivo de Excel del conjunto de datos “Las 50 empresas más innovadoras entre 2013 y 2019” de forma programatica.
Cargar el conjunto de datos en r y explorar su estructura con la función
str()
.Contestar:
4.1 ¿Cuántas columnas y filas tiene el data.frame?
4.2 ¿Qué tipo de dato hay en cada columna? ¿el tipo de dato es correcto según el contenido que vez?
4.3 ¿Que funcion usaste para leer el archivo de Excel?
Al final del ejercicio deberías tener un archivo .qmd o .R con el código que lo resuelve. Nombrá el archivo siguiendo los consejos que vimos en clase.
C.0.1.1 Soluciones
C.1 Capitulo 4 - Manipulación de datos ordenados I
Es hora de revisar lo que vimos hasta acá.
- Descargá el archivo que se encuentra en este link y guardalo en tu proyecto de trabajo en clase.
- Resolvé los ejercicios propuestos de lectura (yapa!) y de filtros. En algunos casos tendrías que reemplazar los
_____
con el código correspondiente. En otros casos el ejercicio te pedirá escribir el código desde cero. - El archivo tiene más ejercicios, pero no te adelantes. Vamos a ver esos temas a continuación.
¿Te acordás del ejercicio que arrancaste cuando vimos filtros? Es hora de completarlo!
- Completá los ejercicios de este archivo que ya deberías tener en tu proyecto.
- Te vas a encontrar con ejercicios para practicar
summarise()
ymutate()
. De nuevo, en algunos casos tendrías que reemplazar los_____
con el código correspondiente. En otros casos el ejercicio te pedirá escribir el código desde cero. - Cuando hayas terminado, knitea el archivo para generar un html y ver como queda el resultado.
C.1.1 Soluciones
Este archivo incluye ejercicios para practicar como manipular datos usando dplyr. Es importante que guardes este archivo en el proyecto de RStudio que usas durante las clases.
Seguiremos trabajando con los datos de pingüinos.
Siempre arrancamos cargando las librerías que vamos a usar. Completá el código y corré el bloque de código para comenzar.
Es momento de leer los datos de pingüinos (si, también hay que practicar leer datos).
C.1.1.1 Filtrando datos
Completá el código y correlo para verificar el resultado.
¿Cuántos pingüinos tienen aletas de más de 225 mm?
pinguinos |>
filter(largo_aleta_mm > 225)
¿Algún pingüino tiene un pico de exactamente 40.9 mm?
pinguinos |>
filter(largo_pico_mm == 40.9)
¿Cuántos pingüinos hembra hay en la especie Papúa?
pinguinos |>
filter(especie == "Papúa", sexo == "hembra")
C.1.1.2 Resumiendo los datos
¿Cuántos pingüinos hay en cada isla?
¿Todas las especies viven en las mismas islas?
¿Cuánto pesa el pinguino más liviano y el más pesado de cada especie?
C.1.1.3 Transformando variables
Calculá la relación entre el alto y el largo del pico (alto_pico_mm/largo_pico_mm)
pinguinos |>
mutate(pico = alto_pico_mm/largo_pico_mm)
Transformá todas las variables de mm a cm.
pinguinos |>
mutate(largo_pico_cm = largo_pico_mm/10,
alto_pico_cm = alto_pico_mm/10,
largo_aleta_cm = largo_aleta_mm/10)
C.2 Capitulo 6 - Graficado datos
Modificá el siguiente código para obtener el gráfico que se muestra más abajo.
|>
paises group_by(continente, _____) |>
summarise(esperanza_de_vida_media = mean(esperanza_de_vida)) |>
ggplot(aes(anio, ________________)) +
geom_point(aes(color = continente), size = 3, shape = _____) +
geom_smooth(color = continente)
C.2.1 Solucion grafico Esperanza de Vida
Es hora de revisar lo que vimos hasta acá.
- Descargá el archivo que se encuentra en este link y guardalo en tu proyecto de trabajo en clase.
- Resolvé los ejercicios propuestos. En algunos casos tendrías que reemplazar los
_____
con el código correspondiente. En otros casos el ejercicio te pedirá escribir el código desde cero.
C.2.2 Soluciones - ejercicios ggplot
En este archivo vas a encontrar ejercicios para practicar cómo hacer gráficos con ggplot2
. En este caso vamos a usar datos que forman parte de un paquete llamado datos
. De hecho este paquete tiene muchas bases de datos en español. Antes de empezar a trabajar recordá instalar este nuevo paquete y el paquete lubridate
desde la consola.
Esta base de datos tiene datos de distintas variables meterológicas en 3 aeropuertos (en la columna origen) a lo largo de un año. Revisa que columnas incluyen y como se llaman en el siguiente bloque de código.
str(clima)
Habrás notado que no hay una única columna con la fecha y la hora, está separada en varias columnas, vamos a crear esta columna con mutate()
y la función make_datetime()
de lubridate.
clima <- clima |>
mutate(fecha_hora = lubridate::make_datetime(anio, mes, dia, hora))
¿Cómo es la relación entre el punto de rocio (a que temperatura el vapor de agua se condensa) y la humedad?
ggplot(clima, aes(punto_rocio, humedad)) +
geom_point()
Sumá un suavizado para visuzalizar mejor la relación. Usá el método lm.
ggplot(clima, aes(punto_rocio, humedad)) +
geom_point() +
geom_smooth(method = "lm")
Veamos ahora como cambia la temperatura a lo largo del año parada estación. El gráfico resultante debería tener el tiempo en el eje x y mostrar 3 lineas de distinto color, una para cada estación.
¿En qué parte del mundo están estos aeropuertos?
Generá boxplots para analizar como se comporta el precio
según la claridad
para cada tipo de corte
como se ve acá.
C.2.3 Solucion Bloxplots
ggplot(diamantes, aes(claridad, precio, fill = claridad)) +
geom_boxplot() +
facet_wrap(~corte)
C.3 Capitulo 7 - Manipulacion de Datos II
Creá una nueva tabla, llamada
paises_superduper_ancho
que tenga una columna para cada variable, anio y país. (Consejo: la tabla final tiene que tener 5 filas).¿Cómo es la tabla más ancha posible que podés generar con estos datos? ¿Cuántas filas y columnas tiene?
C.3.1 Solucion
paises_superduper_ancho <- pivot_wider(paises_largo,
names_from = c(variable, anio, pais),
names_sep = "-",
values_from = valor)