Eurostat es
la oficina estadística de la Unión Europea, responsable de recopilar,
armonizar y publicar estadísticas comparables entre los países miembros
de la UE y algunos países asociados. La
base de datos de Eurostat está muy bien organizada y podemos
trabajar directamente con ella desde R usando el paquete
eurostat.
Eurostat organiza la información mediante un sistema jerárquico de clasificación territorial que denomina NUTS (Nomenclature of Units for Territorial Statistics) de la siguiente forma:
NUTS 0 : Países. Hay 39 países registrados de los cuales 27 forman, actualmente, la Comunidad Económica Europea. Cada país tiene un código identificativo de 2 letras. El código de España es “ES”.
NUTS 1 : Grandes regiones dentro de los países que se corresponden con una, o la unión de varias, comunidades autónomas (o el equivalente en otros países). Hay 115 regiones registradas, entre ellas, Canarias. Tienen un código identificativo de 3 caracteres donde los dos primeros identifican el país. El código de Canarias es “ES7”
NUTS 2 : Comunidades autónomas (o el equivalente en otros países). Hay 299 regiones registradas, entre ellas, Canarias. Tienen un código identificativo de 4 caracteres donde los dos primeros identifican el país. El código de Canarias es “ES70”. Es decir, que Canarias aparece como región NUTS 1 y región NUTS 2 con códigos distintos.
NUTS 3 : Provincias (o el equivalente en otros países), aunque en el caso de Canarias es por islas (no por provincias), lo cual es interesante porque nos da una información más detallada. Tienen un código identificativo de 5 caracteres donde los dos primeros identifican el país. Hay 1345 regiones registradas, entre ellas, todas las Islas Canarias. Por ejemplo, el código de Gran Canaria es “ES705”.
A continuación se visualizan las zonas geográficas que corresponden a los diferentes NUTS. Si pasamos el ratón por encima de una región veremos el código de la región asociada y su nombre completo. Además de estos códigos de regiones reales que aparecen en estos mapas hay códigos para agrupaciones de países como “EU27_2020”, que representa la agrupación de los 27 países que actualmente forman la unión europea, así como otros códigos de regiones que no están en estos mapas NUTS como las regiones del Reino Unido que ya no está en la Unión Europea o regiones creadas con fines estadísticos que no tienen asociada una región real en un mapa NUTS.
La función get_eurostat_toc nos suministra, en forma de
tabla, todos los datasets de Eurostat con la información básica
asociada. Los campos principales de dicha tabla son:
title: el título del dataset. Es el campo por el que podemos filtrar más fácilmente. Puede contener información del NUTS, por ejemplo “NUTS 2” y precisar si la información es semanal, mensual o por cuatrimestre (“week”, “month”, o “quarter”). Si el título no contiene la palabra NUTS, posiblemente sean datos de NUTS 0, es decir por países.
code: el código del dataset que utilizaremos para descargarlo.
last.update.of.data: fecha última actualización del dataset.
last.table.structure.change: fecha última actualización de la estructura del dataset.
data.start: fecha comienzo datos de la tabla. Puede tener indicación de mes o trimestre.
data.end: fecha final datos de la tabla.
values: el nº total de observaciones (filas de la tabla del dataset. Cada fila contiene una única observación (valor numérico) acompañada de variables categóricas).
hierarchy: Eurostat organiza la información en un árbol de carpetas por temas. Este parámetro indica la “profundidad” en el árbol de carpetas donde se encuentra el dataset.
A continuación cargamos en la tabla datasets los
datasets disponibles, los ordenamos por volumen de datos y los
imprimimos de forma dinámica. Observamos que hay 6554 datasets que
podemos explorar y que tenemos un campo de búsqueda para filtrar la
tabla donde podemos poner uno o varios strings separados por espacios en
blanco.
Podemos refinar la búsqueda añadiendo filtros manualmente que puedan ser más sofisticados. Por ejemplo, vamos a filtrar, “a priori”, por los datasets con fecha final posterior a 2020 para asegurar que no trabajamos con datasets obsoletos. Además, para asegurar un número de periodos mínimo fijamos que la fecha de inicio de los datos es anterior a 2011 o que los datos se den más de una vez por año (trimestrales, mensuales, semanales). Hay que tener cuidado porque, a veces, los datos no aparecen todos los años, sino cada 3-4 años. Para los proyectos personales de la asignatura AEDV buscaremos, preferentemente, los datasets que verifican estas condiciones que pueden buscarse a partir de la siguiente tabla dinámica:
Hay que tener en cuenta que, con frecuencia, el título del dataset no es muy claro. Simplemente poniendo el título o código del dataset en ChatGPT saldrá una explicación más detallada. Si queremos aún más detalles podemos buscarlo en la página de Eurostat. Hay datasets pequeños, como el del coeficiente Gini de desigualdad (código ilc_di12) que, por si solos no son suficientes para hacer el proyecto personal pero son un excelente complemento para otros proyectos sobre temas relacionados.
Pongamos que, en el proceso de búsqueda, me interesa ver el contenido
del dataset que tiene como título
Income of households by NUTS 2 region y de código
nama_10r_2hhinc. Vamos a descargarlo usando la función
get_eurostat.
# CÓDIGO DATASET
dataset.name <- "nama_10r_2hhinc"
# cargamos la tabla y la ordenamos por fechas y regiones
data <- get_eurostat(dataset.name, time_format = "date") %>%
as_tibble() %>%
arrange(TIME_PERIOD,geo)
data
## # A tibble: 285,294 × 7
## freq unit direct na_item geo TIME_PERIOD values
## <chr> <chr> <chr> <chr> <chr> <date> <dbl>
## 1 A MIO_EUR BAL B2A3N BE 1995-01-01 24926.
## 2 A MIO_EUR BAL B5N BE 1995-01-01 168359.
## 3 A MIO_EUR BAL B6N BE 1995-01-01 135254.
## 4 A MIO_EUR PAID D4 BE 1995-01-01 3783.
## 5 A MIO_EUR PAID D5 BE 1995-01-01 29816.
## 6 A MIO_EUR PAID D61 BE 1995-01-01 43676.
## 7 A MIO_EUR PAID D62 BE 1995-01-01 34.0
## 8 A MIO_EUR PAID D7 BE 1995-01-01 5726
## 9 A MIO_EUR RECV D1 BE 1995-01-01 113882.
## 10 A MIO_EUR RECV D4 BE 1995-01-01 33334.
## # ℹ 285,284 more rows
Los datasets de Eurostat son multidimensionales, es decir, hay varias
columnas (dimensiones) con variables categóricas cuyos valores
combinados identifican por completo el valor de la observación y, por
otro lado, son tablas ordenadas (tidy), es decir, en cada fila hay una
sola observación (normalmente un valor numérico en las tablas que
nosotros manejamos). Todos los campos usan abreviaturas porque así la
tabla ocupa menos y es más fácil/rápido de gestionar. Todas los datasets
tienen una columna llamada geo, con el código de la región
en función del NUTS. Los códigos de los países enteros (NUTS 0) tienen
dos caracteres. Las regiones de NUTS 1 tres caracteres, las NUTS 2
cuatro caracteres y las NUTS 3 cinco caracteres.
Aunque para trabajar con las tablas no es aconsejable, podemos convertir todas las abreviaturas a nombres extendidos de la siguiente forma:
label_eurostat(data,fix_duplicated = TRUE)
## # A tibble: 285,294 × 7
## freq unit direct na_item geo TIME_PERIOD values
## <chr> <chr> <chr> <chr> <chr> <date> <dbl>
## 1 Annual Million euro Balance Operating surplus and … Belg… 1995-01-01 2.49e4
## 2 Annual Million euro Balance Balance of primary inc… Belg… 1995-01-01 1.68e5
## 3 Annual Million euro Balance Disposable income, net Belg… 1995-01-01 1.35e5
## 4 Annual Million euro Paid Property income Belg… 1995-01-01 3.78e3
## 5 Annual Million euro Paid Current taxes on incom… Belg… 1995-01-01 2.98e4
## 6 Annual Million euro Paid Net social contributio… Belg… 1995-01-01 4.37e4
## 7 Annual Million euro Paid Social benefits other … Belg… 1995-01-01 3.40e1
## 8 Annual Million euro Paid Other current transfers Belg… 1995-01-01 5.73e3
## 9 Annual Million euro Received Compensation of employ… Belg… 1995-01-01 1.14e5
## 10 Annual Million euro Received Property income Belg… 1995-01-01 3.33e4
## # ℹ 285,284 more rows
Para entender el dataset, más abajo se imprime diversa información útil, que se ha obtenido automáticamente mediante código, sobre las variables categóricas. De esta información deducimos lo siguiente para cada una de ellas:
freq: es la frecuencia de las observaciones. Tiene un único valor “A” que nos indica que la información es anual, es decir, un dato por año.
unit: determina lo que se mide en la observación
(dato numérico values). Vemos que hay 5 opciones, pero 3 de
ellas aparecen pocas veces en términos relativos.
direct: tiene 3 opciones pero la más que aparece
es BAL
na_item: tiene 13 opciones, aunque algunas de
ellas, como D63, con muy pocas observaciones en términos
relativos. Las opciones que más aparecen son B5Ny
B6N.
geo: esta variable representa el código NUTS de
la región asociada a la observación. Vemos que en el dataset aparecen 29
regiones de NUTS 0 (países), 94 de NUTS 1 (grandes regiones), 251 de
NUTS 2 (comunidades autónomas), EU27_2020 que sería la
observación para el total de los países de la Unión Europea. Además
aparecen 15 códigos con NUTS “OTHERS” que significa que son códigos que
no tienen asociada una región real en alguno de los mapas físicos NUTS,
pueden ser regiones del Reino Unido que ya no está en la Unión Europea o
regiones creadas con fines estadísticos que no tienen asociada una
región real en un mapa NUTS.
IMPORTANTE: en general, para que un dataset sea válido, como
dataset principal del proyecto personal de AEDV, debe tener datos
referidos a un número mínimo de regiones de algún NUTS, apróximadamente
25 para NUTS 0, 90 para NUTS 1, 200 para NUTS 2 y 500 para NUTS
3. Desde ese punto de vista este dataset cumple ese criterio
por triplicado al tener datos mínimos en 3 NUTS.
TIME_PERIOD: las fechas de las observaciones. Vemos que los datos empiezan en 1995 pero con pocas observaciones relativas. A partir del 2000 aumentan mucho las observaciones y en el último año, 2023, bajan mucho las observaciones registradas.
Esta información se calcula automáticamente, es muy útil, y nos da una primera idea de la organización del dataset. Si a partir de estos queremos profundizar más, tendríamos que estudiar en detalle el significado de las variables categóricas y sus opciones, especialmente, aquellas opciones que más salen en términos relativos.
## COLUMNA: freq
## freq N.Observ full_name
## [1,] A 285294 Annual
## COLUMNA: unit
## unit N.Observ full_name
## [1,] MIO_EUR 115674 Million euro
## [2,] MIO_NAC 115674 Million units of national currency
## [3,] MIO_PPS_EU27_2020 18176 Million purchasing power standards (PPS,..
## [4,] EUR_HAB 17885 Euro per inhabitant
## [5,] PPS_EU27_2020_HAB 17885 Purchasing power standard (PPS, EU27 fro..
## COLUMNA: direct
## direct N.Observ full_name
## [1,] BAL 110856 Balance
## [2,] PAID 89588 Paid
## [3,] RECV 84850 Received
## COLUMNA: na_item
## na_item N.Observ full_name
## [1,] B5N 44072 Balance of primary incomes/national inco..
## [2,] B6N 44072 Disposable income, net
## [3,] D4 36100 Property income
## [4,] D7 36100 Other current transfers
## [5,] D61 28370 Net social contributions
## [6,] D62 28106 Social benefits other than social transf..
## [7,] D1 18242 Compensation of employees
## [8,] B2A3N 18162 Operating surplus and mixed income, net
## [9,] D5 18050 Current taxes on income, wealth, etc.
## [10,] P51C 4986 Consumption of fixed capital
## [11,] B7N 4550 Adjusted disposable income, net
## [12,] P3 2346 Final consumption expenditure
## [13,] D63 2138 Social transfers in kind
##
## CONTABILIZACIÓN Nº REGIONES NUTS A PARTIR DE LA COLUMNA geo
## NUTS Number of Regions
## [1,] 0 29
## [2,] 1 94
## [3,] 2 251
## [4,] EU27_2020 1
## [5,] OTHERS 15
##
## COLUMNA: TIME_PERIOD
## TIME_PERIOD N.observ
## [1,] 1995-01-01 2230
## [2,] 1996-01-01 2230
## [3,] 1997-01-01 2230
## [4,] 1998-01-01 2230
## [5,] 1999-01-01 2230
## [6,] 2000-01-01 11590
## [7,] 2001-01-01 11590
## [8,] 2002-01-01 11590
## [9,] 2003-01-01 11590
## [10,] 2004-01-01 11590
## [11,] 2005-01-01 11590
## [12,] 2006-01-01 11596
## [13,] 2007-01-01 11596
## [14,] 2008-01-01 11632
## [15,] 2009-01-01 11632
## [16,] 2010-01-01 11688
## [17,] 2011-01-01 11928
## [18,] 2012-01-01 11928
## [19,] 2013-01-01 11928
## [20,] 2014-01-01 11932
## [21,] 2015-01-01 11884
## [22,] 2016-01-01 11942
## [23,] 2017-01-01 11942
## [24,] 2018-01-01 11942
## [25,] 2019-01-01 11942
## [26,] 2020-01-01 12168
## [27,] 2021-01-01 12154
## [28,] 2022-01-01 11724
## [29,] 2023-01-01 3046
Del análisis anterior sale que los datos empiezan en 1995, pero es a partir del 2000 cuando empieza a haber más observaciones y que en el año 2023 hay pocas observaciones, es decir hay muchos datos faltantes. Cada combinación posible de variables categóricas (excluyendo las fechas) genera una serie temporal dada por los valores observados para las diferentes fechas. Lo ideal es que todas las series temporales que salen de esta manera tengan el tamaño máximo posible. Pero esto rara vez ocurre. De hecho, en este caso sabemos que no va a pasar porque para ello, todas las fechas tendrían que tener asociadas el número máximo de observaciones posibles. Para analizar esto estudiaremos algunos percentiles de los tamaños (nº de fechas) que tienen estas series temporales. Observamos que el máximo tamaño de la serie temporal registrada es 29 (el total de fechas del dataset), que más del 10% de las series temporales observadas tienen ese valor máximo de 29 y más del 90% tienen al menos 23 fechas. IMPORTANTE: en general, para que un dataset sea válido, como dataset principal del proyecto personal de AEDV, la mayor parte de las series temporales deben tener un tamaño superior a 10 (p50>10) y cuanto mayor sea ese tamaño, mejor.. En ese sentido, este dataset verifica ese criterio.
Percentiles de la distribución de tamaños de las series temporales observadas
## # A tibble: 1 × 7
## min p10 p25 p50 p75 p90 max
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <int>
## 1 2 23 23 23 24 29 29
Para valorar si las regiones tienen asociadas un número similar de
observaciones o hay muchos datos faltantes, vamos a estudiar los
percentiles de la distribución del nº de observaciones por regiones que
se presentan debajo. Observamos que hay bastante variabilidad, lo cual
es normal porque la cantidad de información disponible puede variar
mucho de una región a otra. En ese contexto es importante analizar si
España y/o Canarias están bien representados. En ese sentido, vemos
debajo que las regiones de España y Canarias están bien representadas
con 934 observaciones situadas en el p90 de la
distribución. IMPORTANTE: en general, para que un dataset sea
válido, como dataset principal del proyecto personal de AEDV, debe
cumplir que para alguna región vinculada a España y/o Canarias, el nº de
observaciones supere el percentil p75 de la
distribución. Por tanto, este dataset cumple la condición tanto
para España como para Canarias. Hay que tener en cuenta que Canarias
aparece dos veces con códigos distintos: ES7 para NUTS 1 y
ES70 para NUTS 2.
Percentiles de la distribución del nº de observaciones por regiones
## # A tibble: 1 × 7
## min p10 p25 p50 p75 p90 max
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <int>
## 1 34 644 644 736 796 934 1188
Nº de observaciones en España/Canarias
## # A tibble: 3 × 3
## geo full_name N.Observ
## <chr> <chr> <int>
## 1 ES Spain 934
## 2 ES7 Canarias 934
## 3 ES70 Canarias 934
En las tablas multidimensionales, normalmente, solo unas pocas de
entre todas las combinaciones posibles de las variables categóricas
aparecen realmente en la tabla. Por tanto, es importante estudiar que
combinaciones de las variables categóricas aparecen con datos en la
tabla. Por ejemplo, en el análisis anterior vimos que, separadamente,
MIO_EUR, BAL y B6N aparecían con
bastante frecuencia, ahora vamos a ver la frecuencia con la que aparece
la combinación de las 3 opciones. Ello se muestra en la siguiente tabla.
Observamos que la referida combinación tiene 9088 observaciones. Aquí el
número de observaciones representa, para una combinación, en cuantas
fechas, regiones, edad y sexo (si los hubiera) aparecen esta
combinación. Cada combinación de variables categóricas que aparece puede
considerarse un atributo combinado de la región correspondiente para una
cierta fecha (y edad/sexo si lo hubiera), IMPORTANTE: en
general, para que un dataset sea válido, como dataset principal del
proyecto personal de AEDV, debe tener, al menos 5 atributos combinados,
todos con un número relativamente alto de observaciones, teniendo en
cuenta además, que si el dataset contiene información de sexo y grupos
de edad, estos pueden también combinarse con el resto de atributos para
formar atributos combinados. Por ejemplo, contando con 2 sexos y 3
grupos de edad, el nº de atributos combinados se multiplicaría por
6. Este dataset verifica ese criterio pues genera 42 atributos
muchos de ellos con un nº de observaciones cercano al máximo (9121). Hay
que tener en cuenta que puede haber atributos que generen información
poco relevante o muy parecida a otros atributos; pero eso solo podrá
valorar con un análisis posterior más detallado sobre el significado de
los atributos. Si nos interesa mucho el tema y no cumple esta condición,
siempre podemos combinar este dataset con otros que nos permitan
aumentar el nº de atributos.
## # A tibble: 42 × 7
## # Groups: freq, unit, direct [9]
## freq unit direct na_item N.observ init.date end.date
## <chr> <chr> <chr> <chr> <int> <date> <date>
## 1 A MIO_EUR RECV D1 9121 1995-01-01 2023-01-01
## 2 A MIO_NAC RECV D1 9121 1995-01-01 2023-01-01
## 3 A MIO_EUR BAL B5N 9088 1995-01-01 2023-01-01
## 4 A MIO_EUR BAL B6N 9088 1995-01-01 2023-01-01
## 5 A MIO_NAC BAL B5N 9088 1995-01-01 2023-01-01
## 6 A MIO_NAC BAL B6N 9088 1995-01-01 2023-01-01
## 7 A MIO_PPS_EU27_2020 BAL B5N 9088 1995-01-01 2023-01-01
## 8 A MIO_PPS_EU27_2020 BAL B6N 9088 1995-01-01 2023-01-01
## 9 A MIO_EUR BAL B2A3N 9081 1995-01-01 2023-01-01
## 10 A MIO_NAC BAL B2A3N 9081 1995-01-01 2023-01-01
## 11 A MIO_EUR PAID D61 9065 1995-01-01 2023-01-01
## 12 A MIO_EUR RECV D62 9065 1995-01-01 2023-01-01
## 13 A MIO_NAC PAID D61 9065 1995-01-01 2023-01-01
## 14 A MIO_NAC RECV D62 9065 1995-01-01 2023-01-01
## 15 A MIO_EUR PAID D4 9025 1995-01-01 2023-01-01
## 16 A MIO_EUR PAID D5 9025 1995-01-01 2023-01-01
## 17 A MIO_EUR PAID D7 9025 1995-01-01 2023-01-01
## 18 A MIO_EUR RECV D4 9025 1995-01-01 2023-01-01
## 19 A MIO_EUR RECV D7 9025 1995-01-01 2023-01-01
## 20 A MIO_NAC PAID D4 9025 1995-01-01 2023-01-01
## 21 A MIO_NAC PAID D5 9025 1995-01-01 2023-01-01
## 22 A MIO_NAC PAID D7 9025 1995-01-01 2023-01-01
## 23 A MIO_NAC RECV D4 9025 1995-01-01 2023-01-01
## 24 A MIO_NAC RECV D7 9025 1995-01-01 2023-01-01
## 25 A EUR_HAB BAL B5N 8404 2000-01-01 2023-01-01
## 26 A EUR_HAB BAL B6N 8404 2000-01-01 2023-01-01
## 27 A PPS_EU27_2020_HAB BAL B5N 8404 2000-01-01 2023-01-01
## 28 A PPS_EU27_2020_HAB BAL B6N 8404 2000-01-01 2023-01-01
## 29 A MIO_EUR RECV D61 5120 1995-01-01 2023-01-01
## 30 A MIO_NAC RECV D61 5120 1995-01-01 2023-01-01
## 31 A MIO_EUR PAID D62 4988 1995-01-01 2023-01-01
## 32 A MIO_NAC PAID D62 4988 1995-01-01 2023-01-01
## 33 A MIO_EUR PAID P51C 2493 1995-01-01 2023-01-01
## 34 A MIO_NAC PAID P51C 2493 1995-01-01 2023-01-01
## 35 A MIO_EUR BAL B7N 1198 1995-01-01 2023-01-01
## 36 A MIO_NAC BAL B7N 1198 1995-01-01 2023-01-01
## 37 A MIO_EUR PAID P3 1173 1995-01-01 2023-01-01
## 38 A MIO_NAC PAID P3 1173 1995-01-01 2023-01-01
## 39 A EUR_HAB BAL B7N 1077 2000-01-01 2023-01-01
## 40 A PPS_EU27_2020_HAB BAL B7N 1077 2000-01-01 2023-01-01
## 41 A MIO_EUR RECV D63 1069 1995-01-01 2023-01-01
## 42 A MIO_NAC RECV D63 1069 1995-01-01 2023-01-01
El formato tidy (una sola observación por fila) es idóneo para
gestionar la tabla con R pero no es adecuado par un
análisis/edición visual. Para facilitar esta tarea vamos a poner las
fechas por columnas en una nueva tabla. Además, como nos interesa
especialmente verificar si España y/o Canarias se encuentran bien
representadas en los datos, vamos a visualizar, en dicha tabla, los
registros asociados (con un máximo de 60 columnas y los primeros 1000
registros de España o Canarias. Observamos que, para la gran mayoría de
atributos combinados en España y Canarias, la serie temporal está
completa entre el 2000 y 2022, lo cual es un rango razonable de
años.
Visualización España/Canarias (máximo 60 columnas y 1000 filas por región)
Una buena idea después de descargar el dataset del servidor de
Eurostat es guardar localmente una copia para poder trabajar con ella
localmente, que siempre será más rápido y además no dependemos del
servidor de Eurostat, o de si se producen cambios en la versión del
dataset en Eurostat. Además, para ahorrar espacio, podemos eliminar
previamente las variables con valores constantes, como en este caso
freq, que siempre vale A, y, por tanto, no
vale la pena repetirla en cada fila. Para escribir/leer ficheros CSV
podemos usar las funciones read_csv, write_csv
o read_csv2, write_csv2. Añadir el 2 al final
del nombre de la función hace que se escriba con codificación española,
es decir, usa como separador de columnas “;” y como separarador de
decimales “,”. Hay que tener cuidado porque existen otras funciones de
lectura/escritura como write.csv, read.csv que
aunque se escriben casi igual funcionan distinto y son más lentas.
Leer/escribir el dataset en el fichero nama_10r_2hhinc.csv se haría del siguiente modo:
# ESCRITURA DEL DATASET EN FORMATO CSV
data %>%
select(-freq) %>%
write_csv2(paste0(dataset.name,".csv"))
# LECTURA DEL DATASET EN FORMATO CSV
data <- read_csv2(paste0(dataset.name,".csv")) %>%
as_tibble() %>%
mutate(TIME_PERIOD=as.Date(TIME_PERIOD))
data
Para hacer lo mismo con el dataset con las fechas por columnas en el archivo nama_10r_2hhinc.fechas.csv haríamos:
# ESCRITURA DEL DATASET EN FORMATO CSV CON LAS FECHAS POR COLUMNAS E INFORMACIÓN ADICIONAL
data.fechas %>%
write_csv2(paste0(dataset.name,".fechas.csv"))
# LECTURA DEL DATASET EN FORMATO CSV CON LAS FECHAS POR COLUMNAS E INFORMACIÓN ADICIONAL
data.fechas <- read_csv2(paste0(dataset.name,".fechas.csv")) %>%
as_tibble()
Este fichero con las fechas por columnas podríamos abrirlo con excel (si no es muy grande) y tendríamos una buena apreciación visual del dataset con la evolución temporal. Incluso podríamos editar manualmente el CSV o el excel, guardarlo y después leerlo.
Si queremos pasarlo a formato tidy, podemos hacer:
data <- data.fechas %>%
pivot_longer(cols = (which(colnames(data.fechas) == "region")+1):ncol(data.fechas),
names_to = "TIME_PERIOD",
values_to = "values"
) %>%
mutate(TIME_PERIOD=as.Date(TIME_PERIOD)) %>%
relocate(TIME_PERIOD,.before=values) %>%
na.omit() %>%
arrange(TIME_PERIOD,geo)
data
Nótese que para tener la misma organización que el dataset inicial,
tendríamos que quitar las variables NUTS,
country, y region, que las hemos añadido
nosotros al poner las fechas por columnas.