Instalar y cargar paquetes

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)

Leer (y guardar en el entorno) las tablas

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

Unir las tablas

¡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

Generar un .csv

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!