Organização dos arquivos em R

Vamos explorar técnicas de organização de arquivos em R e caminhos relativos com o {here}
análises
here
organizar arquivos
Autor

Aldani Braz Carvalho

Data de Publicação

4 de novembro de 2024

Introdução

Organizar bem as pastas do projeto no R pode simplificar muito o nosso trabalho!

É exatamente isso que eu abordo neste texto. Em linhas gerais, essa postagem pode ser sintetizada assim:

Inicie cada projeto no RStudio com um novo projeto;

Crie 3 pastas dentro do projeto: script, dados e figuras;

Use caminhos relativos com o here para facilitar o acesso aos arquivos.

Mão na massa

Diretório de trabalho

O primeiro passo é determinar o diretório de trabalho. O diretório de trabalho é onde o R vai buscar os arquivos na hora de ler informações ou gravar arquivos na hora de salvar objetos.


Portanto, recomendo que crie uma pasta principal e dentro dela crie as pastas dados, figuras e script.

🗂️ projeto

    📂dados

    📂figuras

    📂script

É comum usar-se o setwd() para definir o endereço do seu projeto para algo como setwd("D:/projeto"). Na próxima seção eu mostro a melhor forma de fazer isso!

👈 Eu mostro isso aqui, mas não recomendo.
Fique atento

O windows usa \ e o R usa / nos caminhos e, portanto, nós precisamos substituir o \ por /com o CTRL+F, o que é muito chato.



Uma alternativa para isso ☝️ é por meio da aba Painel de Visualização. O item altera o caminho, conforme a Figura 1:

📁Em Files

  📂 Selecione a pasta do projeto

    ⚙️ Clique na engrenagem ⚙️More🔻

      🗂️ Selecione a opção: Set As Working Directory

Print da tela do Rstudio
Figura 1: Como definir o work diretory. Fonte: acervo do autor(2024).

Se rodar a função getwd(), retornará "D:/projetos/here" conforme o esperado.

Rstudio project

A etapa anterior pode ser descartada se você utilizar o Rstudio project. Isso ocorre porque ao escolher o diretório do projeto, ele já define o wd para você.

👈Essa é melhor forma de fazer isso!!

Na aba superior, vá em:

📁 File

  🆕 New Project

    📂 New Directory

      📑 New Project



Em seguida, defina um Directory name que faça sentido para o projeto, escolha o endereço do projeto em Browse e clique em Create Project , conforme a Figura 2.

Print do projeto
Figura 2: Como criar um novo projeto. Fonte: acervo do autor (2024).

Caminho relativo

O caminho absoluto foi o que determinamos com setwd("D:/projeto/here") ou quando criamos o novo projeto. Esse tipo de caminho especifica a localização exata de uma pasta no seu computador.

Em geral, nossos caminhos costumam ser algo como este: "D:/Users/Aldani/Documents/R/projetos".

Nota

Sim, isso ☝️ é horrível e o pior é que são irreprodutíveis e frágeis:

  • Se renomear uma pasta, o código quebra 🔧

  • Se alguém mais precisar rodar seu código, pode ser confuso 😖

  • Se usar outra máquina, os caminhos não corresponderão 💻



O pacote here resolve esse problema com a função here(). Ele permite criar caminhos curtos, limpos e funcionais em qualquer máquina se você compartilhar o projeto completo. Isso simplifica o processo e garante reprodutibilidade.

1. Instale o here e o conjunto de pacotes tidyverse

install.packages(c("tidyverse",
                   "here"), 
                  dependencies = TRUE)

2. Carregue as bibliotecas

library(tidyverse)
library(here)

3. Adicione o caminho

O código a seguir vai considerar o wd "D:/Users/Aldani/Documents/R/projeto". Isso significa que tudo que está antes da pasta projeto não importa mais.

caminho <- here::here(
  "dados", # pasta dentro do seu projeto
  "chuva.xlsx" # nome do arquivo
)

Mas é claro que o que você vai buscar precisa estar dentro do projeto. No caso, o arquivo "chuva.xlsx" precisa estar localizado em:

📁projeto

  📂 dados

    📃 chuva.xlsx

4. importe o arquivo

chuva <- readxl::read_excel(
  caminho, # caminho do arquivo 
  sheet = 1 # quero a primeira aba do excel
)


Pronto, agora você já pode fazer as suas análises com uma estrutura de pastas organizada, que pode ser facilmente reproduzida em outras máquinas. Essa abordagem não apenas facilita o seu trabalho, mas também garante que suas análises sejam acessíveis e compreensíveis para outras pessoas que possam utilizar seu código no futuro.


Nos vemos na próxima postagem, Aldani👋.