library(readxl)
library(tidyverse)
library(lubridate)Preparando los datos
Cargamos los paquetes que vamos a usar en nuestro documento:
Leemos la hoja Excel que contiene los datos de los barcos que han pasado por el puerto de Avilés en el año 2024.
url <- "https://github.com/jrcuesta/Puerto-de-Aviles/raw/refs/heads/main/puerto_aviles_16.xls"
temp_file <- tempfile(fileext = ".xls")
download.file(url, temp_file, mode = "wb")
df <- read_excel(temp_file)
puerto_aviles <- df %>%
mutate(across(c(`Tipo Buque`, Bandera, Mercancia, Estibador, Consignatario,
Muelle, Destino, Origen, Operación, IMO, Pais_dest, Pais_orig),
as.factor)) %>%
mutate(`Fecha Entrada` = ymd(`Fecha Entrada`),
`Fecha Salida` = ymd(`Fecha Salida`))Al ir trabajando con los datos, podemos darnos cuenta que hay errores o datos duplicados, por lo que podemos ir editando la tabla puerto_aviles para corregirlos. En el caso de una de las mercancias, la tenemos don dos nombres: ROCK PHOSPHATE y FOSFATO DE ROCA, por lo que podemos cambiar uno de los nombres para que no haya confusión. Vamos a poner en todos los casos “ROCK PHOSPHATE”.
library(stringr)
puerto_aviles <- puerto_aviles %>%
mutate(Mercancia = str_replace_all(Mercancia, regex("FOSFATO DE ROCA", ignore_case = TRUE),
"ROCK PHOSPHATE")) Una e las preguntas que nos podemos hacer es la de a que destinos se han enviado mercancias desde el puerto de Avilés con más frecuencia en el año 2024.
puerto_aviles %>%
filter(`Fecha Entrada` >= "2024-01-01" & `Fecha Entrada` <= "2024-12-31") %>%
filter(Operación == "Embarque") %>%
filter(Pais_dest != "NA") %>% # Excluir NA
#slice_max(n, n = 20) %>% # Seleccionar los 20 destinos con más embarques
count(Pais_dest, sort = TRUE) %>% # Contar y ordenar por frecuencia
slice_max(n, n = 20)# A tibble: 20 × 2
Pais_dest n
<fct> <int>
1 ESPAÑA 66
2 ITALIA 64
3 PAISES BAJOS 51
4 FRANCIA 42
5 BELGICA 39
6 ALEMANIA 31
7 SUECIA 29
8 TURQUÍA 22
9 DINAMARCA 20
10 INGLATERRA 19
11 PORTUGAL 19
12 FINLANDIA 15
13 GRECIA 14
14 POLONIA 12
15 ESTADOS UNIDOS 11
16 MARRUECOS 11
17 NORUEGA 9
18 BRASIL 7
19 ESCOCIA 7
20 GALES 6
En la lista vemos que principalmente los embarques eran de tipo domestico, destinadas a puertos españoles, pero existe mucho tráfico marítimo a puertos europeos.
Podemos visualizarlo de manera gráfica
puerto_aviles %>%
filter(`Fecha Entrada` >= "2024-01-01" & `Fecha Entrada` <= "2024-12-31") %>%
filter(Operación == "Embarque") %>%
filter(Pais_dest != "NA") %>% # Excluir NA
count(Pais_dest, sort = TRUE) %>% # Contar y ordenar por frecuencia
slice_max(n, n = 20) %>% # Seleccionar los 20 destinos con más embarques
ggplot(aes(x = fct_reorder(Pais_dest, n), y = n)) +
geom_bar(stat = "identity", fill = "steelblue", color = "black") +
coord_flip() +
labs(
x = "Destino embarques 2024",
y = "Número de embarques",
title = "Top 20 destinos de embarque en 2024"
) +
theme_minimal()
Podemos preguntarnos que mercancia se cargan hacia estos paises, tratando de verlo de manera gráfica. El problema es que los gráficos quedan muy saturados si mostramos todas las mercancias que se han enviado a cada país, por lo que se mostraran las mercancias que más veces se han embarcado.
puerto_aviles %>%
filter(`Fecha Entrada` >= "2024-01-01" & `Fecha Entrada` <= "2024-12-31") %>%
filter(Operación == "Embarque") %>%
filter(Pais_dest != "NA") %>% # Excluir NA
count(Pais_dest, Mercancia, sort = TRUE) %>%
slice_max(n, n = 20) %>%
ggplot(aes(x = fct_reorder(Pais_dest, n), y = n, fill = Mercancia))+
geom_bar(stat = "identity", color = "black") +
geom_text(aes(label = n), position = position_stack(vjust = 0.5), size = 3) +
coord_flip() +
labs(
x = "Destino",
y = "Nº embarques",
title = "Principales destinos de embarque en 2024"
) +
theme_minimal() +
theme(legend.position = "bottom") # 🔹 Se muestra la leyenda en lugar de ocultarla
Como vemos para Italia se embarcó principalmente bobinas de acero y arcilla, pero ¿a que ciudades y que mercancia se han enviado?
puerto_aviles %>%
filter(`Fecha Entrada` >= "2024-01-01" & `Fecha Entrada` <= "2024-12-31") %>%
filter(Operación == "Embarque") %>%
filter(Pais_dest == "ITALIA") %>%
count(Destino,Mercancia, sort = TRUE) # A tibble: 11 × 3
Destino Mercancia n
<fct> <chr> <int>
1 LA SPEZIA BOBINAS DE ACERO 24
2 RAVENNA BOBINAS DE ACERO 15
3 RAVENNA ARCILLA 7
4 SALERNO BOBINAS DE ACERO 4
5 GENOA LINGOTES DE ZINC 3
6 MARINA DI CARRARA BAUXITA 3
7 SAVONA BOBINAS DE ACERO 3
8 LA SPEZIA PRODUCTOS SIDERURGICOS 2
9 GENOA OXIDOS EN SACOS 1
10 MARINA DI CARRARA BOBINAS DE ACERO 1
11 PORTO VESME (PORTOSCURO) ACIDO SULFURICO 1
De este modo podemos comprobar todos los envíos de mercancias a Italia en el año 2024.
Por otra parte el puerto hace una gran parte de loos embarques para España, pero ¿a que ciudades y que mercancia se han enviado?
puerto_aviles %>%
filter(`Fecha Entrada` >= "2024-01-01" & `Fecha Entrada` <= "2024-12-31") %>%
filter(Operación == "Embarque") %>%
filter(Pais_dest == "ESPAÑA") %>%
count(Destino, Mercancia, sort = TRUE) # A tibble: 24 × 3
Destino Mercancia n
<fct> <chr> <int>
1 SAGUNTO BOBINAS DE ACERO 12
2 FERROL PIEZAS 9
3 CASTELLON ARCILLA 8
4 TARRAGONA ACIDO SULFURICO 6
5 CASTELLON ACIDO SULFURICO 4
6 BILBAO WASH OIL 3
7 PASAJES BOBINAS DE ACERO 3
8 BILBAO BOBINAS DE ACERO 2
9 CEUTA BOBINAS DE ACERO 2
10 MARIN - PONTEVEDRA EOLICOS 2
# ℹ 14 more rows
Han sido 16 los destinos en España, estando a la cabeza Castellón, Sagunto y Ferrol. ¿Qué mercancias se han enviado a estos destinos?
puerto_aviles %>%
filter(`Fecha Entrada` >= "2024-01-01" & `Fecha Entrada` <= "2024-12-31") %>%
filter(Operación == "Embarque") %>%
filter(Destino %in% c("CASTELLON", "SAGUNTO", "FERROL")) %>%
count(Destino, Mercancia, sort = TRUE) # A tibble: 6 × 3
Destino Mercancia n
<fct> <chr> <int>
1 SAGUNTO BOBINAS DE ACERO 12
2 FERROL PIEZAS 9
3 CASTELLON ARCILLA 8
4 CASTELLON ACIDO SULFURICO 4
5 FERROL CILINDROS 1
6 FERROL ESPATOFLUOR 1
Guardamos los datos para usarlos en el siguiente post.
# Guardar como archivo RData
save(puerto_aviles, file = "puerto_aviles.RData")
save.image("C:/BLOG/Workspaces/Puerto_Aviles/post1.RData")