Lo primero es instalar el paquete tidyverse, del que salen todas las funciones que vamos a utilizar. Este es el código:
install.packages("tidyverse",repos = "http://cran.us.r-project.org")
##
## The downloaded binary packages are in
## /var/folders/fg/f7tblk5s3rnfw113lj72_f940000gn/T//RtmpZF5tiT/downloaded_packages
Instalar no significa cargar: el siguiente paso es cargarlo. Observa que antes necesitábamos las comillas, ahora no:
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.1.0 ✔ purrr 0.2.5
## ✔ tibble 2.0.1 ✔ dplyr 0.7.8
## ✔ tidyr 0.8.2 ✔ stringr 1.3.1
## ✔ readr 1.3.1 ✔ forcats 0.3.0
## ── Conflicts ────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
Y otra observación importante: instalar el paquete solo se hace una vez, mientras que cargarlo hay que hacerlo cada vez que abrimos una sesión de R… Así que podemos ponerle la almohadilla delante a install.packages
para indicar que es código que no se ejecuta. Quedaría así:
#install.packages("tidyverse")
library(tidyverse)
Ahora vamos a leer nuestras dos tablas (con read_delim
) y, para que se guarden como variables con las que podemos hacer cosas, les vamos a asignar un nombre (con <-
).
arrodillaros <- read_delim("ALPI_344_arrodillaros.csv", delim = ";")
## Parsed with column specification:
## cols(
## ALPI_ID = col_double(),
## Provincia = col_character(),
## Pronombre = col_character()
## )
coordenadas <- read_delim("Pueblos_ALPI.csv", delim=";")
## Parsed with column specification:
## cols(
## Codigo_ALPI = col_double(),
## Latitud = col_character(),
## Longitud = col_character()
## )
Recuerda que para que R encuentre tus archivos, tu working directory debe ser la carpeta en la que estos se encuentran: si no has guardado un proyecto, puedes establecer tu working directoryen files > more. Vamos a comprobar que se han cargado nuestras tablas, simplemente ejecutando sus nombres:
arrodillaros
## # A tibble: 528 x 3
## ALPI_ID Provincia Pronombre
## <dbl> <chr> <chr>
## 1 431 Alava os
## 2 430 Alava os
## 3 432 Alava os
## 4 429 Alava os
## 5 482 Albacete os
## 6 483 Albacete os
## 7 484 Albacete os
## 8 485 Albacete os
## 9 486 Albacete os
## 10 487 Albacete os
## # … with 518 more rows
coordenadas
## # A tibble: 435 x 3
## Codigo_ALPI Latitud Longitud
## <dbl> <chr> <chr>
## 1 429 43,1 -3,05
## 2 430 42,967 -2,817
## 3 431 42,917 -2,5
## 4 432 42,75 -2,35
## 5 482 39,03984 -2,482528
## 6 483 39,26531 -1,912836
## 7 484 39,2584 -1,335103
## 8 485 38,96424 -1,445101
## 9 486 38,72722 -2,004189
## 10 487 38,7 -0,983
## # … with 425 more rows
¡Genial! Siguiente paso: unirlas. Empleamos left_join
, que conserva la primera tabla entera y le incorpora todas las columnas de la segunda tabla, pero solo para las filas que están presentes en la primera. Nuestras tablas tienen que tener una columna común que permita establecer las correspondencias, si no esa columna tiene nombres distintos en cada tabla, tenemos dos opciones. O bien especificamos los nombres con el argumento by
:
arrodillaros_coord <- left_join(arrodillaros, coordenadas, by = c("ALPI_ID" = "Codigo_ALPI"))
O bien renombramos la columna de una de las dos tablas para que sean idénticas y nos olvidamos de by
coordenadas <- rename(coordenadas, ALPI_ID=Codigo_ALPI)
arrodillaros_coord <- left_join(arrodillaros, coordenadas)
## Joining, by = "ALPI_ID"
¡Recuerda que tienes que asignarles un nombre para que se guarden! Vamos a comprobar que está todo bien:
arrodillaros_coord
## # A tibble: 528 x 5
## ALPI_ID Provincia Pronombre Latitud Longitud
## <dbl> <chr> <chr> <chr> <chr>
## 1 431 Alava os 42,917 -2,5
## 2 430 Alava os 42,967 -2,817
## 3 432 Alava os 42,75 -2,35
## 4 429 Alava os 43,1 -3,05
## 5 482 Albacete os 39,03984 -2,482528
## 6 483 Albacete os 39,26531 -1,912836
## 7 484 Albacete os 39,2584 -1,335103
## 8 485 Albacete os 38,96424 -1,445101
## 9 486 Albacete os 38,72722 -2,004189
## 10 487 Albacete os 38,7 -0,983
## # … with 518 more rows
Pues ya solo queda el paso final: exportarla a un archivo csv que podamos utilizar fuera de R. Para eso usamos write_delim:
write_delim(arrodillaros_coord, "arrodillaros_coord.csv", delim="\t")
¡Tachán! Así de fácil ha sido. Si no te funciona algo: presta especial atención a las comillas, las comas… Y, si te sale algún error inesperado, lo mejor es pegarlo en el buscador de Google, ¡seguro que ya le ha pasado a alguien antes!