Googlesheets: Conectando R con hojas de cálculo Google

En un post anterior hemos comentado cómo automatizar un informe en R, utilizando el programador de tareas de Windows para ejecutar un RMarkdown que nos da como resultado un pdf o html. ¿Pero qué ocurre si nuestro informe es una hoja de cálculo en GoogleSheets?

En ocasiones, tenemos un informe compartido con el cliente que hemos de actualizar periódicamente, como puede ser un dashboard de Google Analytics. La librería googlesheets de R nos ofrece la solución, permitiéndonos acceder a un spreadsheet, copiarlo, modificarlo, descargarlo… En el siguiente ejemplo copiaremos un libro ya existente para posteriormente modificarlo.

 

Debemos tener en cuenta sus dependencias con otros paquetes de R. Es posible que tengamos que desinstalar y volver a instalar alguna nueva versión de esos paquetes según los requerimientos expuestos en la documentación.

 

 

  • Paso 2: Cargar la librería.

Y junto con ella, el paquete dplyr.

 

 

  • Paso 3: Copiar un spreadsheet de ejemplo.

En el paquete se da acceso a spreadsheets de prueba. La función gs_gap() enlaza a uno de ellos (test-gs-gapminder).  Queremos tener en Google Sheets (asociado a nuestro usuario de Gmail) una copia de este spreadsheet para practicar. Para ello usaremos la función gs_copy().

Pasamos como primer argumento el libro que queremos copiar (gs_gap()) y como segundo, el nombre que tendrá el libro en nuestro Google Sheets. Esto genera un objeto googlesheets que contiene los metadatos del libro.

 

 

En el entorno global podemos consultar estos metadatos:

Googlesheets

En Google Sheets comprobamos que se ha realizado una copia del libro original llamado ‘Gapminder_copy’:

Googlesheets

 

  • Paso 4: Acceso a datos en un spreadsheet.

Una vez generado el objeto, podemos acceder a las hojas dentro del libro, usando la función gs_read_csv(), pasando como primer argumento el objeto googlesheet y como segundo un entero positivo (posición) o cadena (título de la hoja).

En este caso cargaremos en un data frame la hoja en posición 4, que se corresponde con datos de Europa.

data access

 

 

 

 

 

Con esto ya podríamos trabajar en R con los datos importados del spreadsheet:

 

 

  • Paso 5: Actualizar un spreadsheet.

Pongamos que hay nuevos datos para actualizar nuestro informe en Google Sheets. Con la función gs_add_row(), pasamos como primer argumento el objeto googlesheets, en segundo lugar la hoja que queremos actualizar y por último los datos a añadir (vector, matriz, data frame…).

actualizar worksheet

 

Comprobamos en nuestro spreadsheet que se ha añadido un nuevo registro al final de la hoja ‘Europe’:

actualizar spreadsheet

 

  • Otras formas de acceso a un spreadsheet.

En este ejemplo hemos copiado un libro sin permiso de escritura, para poder realizar una modificación. Si queremos acceder directamente a un libro de nuestra propiedad o con permiso de edición, tenemos varias funciones para hacerlo:

1) Con el nombre del libro (gs_title()):

acceso worksheet

 

 

2) Con la URL del libro (gs_url()):acceso worksheet

 

 

Tenemos a nuestra disposición muchas otras funciones, así como un foro donde encontrar respuesta a FAQs por parte de la autora.

3,2,1… ConnectinG-R!!!

Autor:

Cooking data at Metriplica.

Leave Comment

Your email address will not be published. Required fields are marked *