Imagine-se na seguinte situação: o seu chefe lhe pede uma análise de um conjunto de dados "sujos", que requerem um enorme trabalho de limpeza, além de que se faça cálculos complexos. Você, inteligente e inovador, pretende realizar todo o trabalho com o R, já que a linguagem permite que você faça o trabalho rapidamente. Há um porém, o seu chefe ainda não conhece muito bem a linguagem, e também necessita passar as informações para outros setores da empresa, e por isso, pede que o conjunto de dados seja entregue em uma planilha. Neste texto, iremos mostrar como é possível resolver esse problema, exportando data frames para planilhas utilizando os pacote {XLConnect} e {googlesheets4}.
# Carrega os pacotes necessários library(googlesheets4) library(XLConnect) library(tidyverse)
Primeiro, iremos mostrar como exportar uma data frame para um arquivo .xlsx. O primeiro passo é carregar o arquivo
de formato .xlsx, para que seja feita a conexão com o R. Veja que é possível conectar a uma planilha já existente, utilizando a função loadWorkbook(), passando nome do arquivo em questão no primeiro argumento, bem como criar um arquivo direto do R, passando o argumento create = TRUE. Fazemos isso tudo salvando em um objeto.
Logo em seguida, realizamos a criação de páginas dentro da planilha, no qual iremos colocar nossos dados. Podemos fazer isso com a função createSheet(), em que passamos o objeto que conecta com o arquivo .xlsx, e o nome da página. Após isso, utilizamos a função writeWorksheet() para enfim escrever os dados na planilha. Veja que podemos escolher as coordenadas em que os dados estarão guardados usando os argumentos startRow e startCol, que por padrão começam na linha 1, coluna 1.
Por fim, salvamos o arquivo utilizando a função saveWorkbook().
# Cria um arquivo .xlsx flowers <- loadWorkbook("iris.xlsx", create = TRUE) # Cria uma página no arquivo createSheet(flowers, "iris1") # Escreve na página criada writeWorksheet(flowers, iris, sheet = "iris1", startRow = 1, startCol = 1) # Salva o arquivo saveWorkbook(flowers)
Outro pacote muito útil para transformar data frames em planilhas é o {googlesheets4], que justamente conecta os dados em uma planilha no Google Planilhas.
Para isso, é necessário que o pacote tenha permissão da sua conta Google para realizar as mudanças. Para isso, utiliza-se a função gs4_auth(), colocando seu e-mail de uso.
Em seguida, cria-se a planilha utilizando a função gs4_create(), passando o nome da planilha como primeiro argumento, e o data frame que podem ser utilizados.
Em caso de alterações, podemos escrever por cima da planilha utilizando a função write_sheet(). O argumento ss é usado para conectar a planilha, podemos usar tanto a url, quanto o id salvo dentro do argumento iris_gg.
## Google Sheets # Conecta a conta do Google, para garantir a permissão gs4_auth(email = "luiz@exemplo.com") # Cria uma planilha dentro do Google Planilhas iris_gg <- gs4_create("flowers", sheets = iris) # Escreve por cima do arquivo criado anteriormente write_sheet(data = filter(iris, Species == "setosa"), ss = "1V2722XxqQHbi_9V_bi5LAxwEHrQTXHCW4OnpyjjxiQg", sheet = "iris")
Serve como um bom quebra-galho, não?
________________________
(*) Para entender mais sobre a linguagem R e suas ferramentas, confira nosso Curso de Introdução ao R para análise de dados.