Skip to content

JenniferLopes/Gerenciamento_projetos_no_R

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tutorial: Gerenciamento de Projetos em R

Criando projetos, manipulando arquivos e organizando estruturas no R
Pacotes: {fs}, {usethis} e {here}

R-Ladies Goiânia


Olá

Organizar projetos de análise de dados é um desafio comum para quem está começando e até para quem já tem experiência em programação com R. Quantas vezes você já se deparou com códigos que funcionavam perfeitamente no seu computador, mas quebravam quando compartilhados com colegas? Ou passou horas ajustando caminhos de arquivos porque mudou a estrutura de pastas? A boa notícia é que existem pacotes que resolvem esses problemas de forma definitiva

Sobre o projeto

Este repositório contém um guia prático e completo desenvolvido para a comunidade R-Ladies Goiânia, focado em três pilares essenciais para organização e gerenciamento de projetos em R:

  • {usethis} - Criação de projetos reprodutíveis e configuração de infraestrutura
  • {fs} - Manipulação segura e multiplataforma de arquivos e diretórios
  • {here} - Garantia de caminhos consistentes e relativos ao projeto

Objetivos

  • Ensinar boas práticas de organização de projetos em R
  • Demonstrar o uso de ferramentas modernas para gerenciamento de arquivos
  • Promover reprodutibilidade e portabilidade de código
  • Eliminar o uso de setwd() e caminhos absolutos

Como usar este tutorial

Pré-requisitos

  • R (versão ≥ 4.0.0)
  • RStudio (recomendado)
  • Pacotes necessários:
install.packages(c("usethis", "fs", "here", "quarto"))

Estrutura do repositório

?????????????????????

Passo a passo

  1. Clone ou baixe este repositório

    git clone https://github.com/JenniferLopes/tutorial_rladies_goiania.git
  2. Abra o projeto no RStudio

    • Clique duas vezes no arquivo .Rproj
  3. Renderize o documento

    quarto::quarto_render("index.qmd")
  4. Siga os exemplos interativamente

    • Execute cada chunk de código sequencialmente
    • Pratique modificando os exemplos

Tutorial

1. Criando projetos com {usethis}

Aprenda a criar projetos estruturados e configurar infraestrutura:

library(usethis)

# Criar novo projeto
create_project("meu_projeto")

# Inicializar Git
use_git()

# Criar repositório no GitHub
use_github()

2. Manipulando arquivos com {fs}

Domine operações de arquivos de forma segura e consistente:

library(fs)

# Criar estrutura de pastas
dir_create(here("data", c("raw", "clean")))
dir_create(here(c("scripts", "outputs", "figures")))

# Listar arquivos
dir_ls(here("data"))

# Copiar e mover
file_copy("origem.csv", "destino.csv")
file_move("arquivo.txt", "nova_pasta/arquivo.txt")

3. Caminhos relativos com {here}

Garanta portabilidade do seu código:

library(here)

# Sempre use here() para caminhos
dados <- read.csv(here("data", "raw", "dados.csv"))

# Funciona em qualquer sistema operacional!
ggsave(here("figures", "grafico.png"))

Principais funcionalidades do {fs}

Função Descrição Exemplo
dir_create() Cria diretórios dir_create("data/raw")
dir_ls() Lista conteúdo dir_ls("data", glob = "*.csv")
dir_tree() Visualiza estrutura dir_tree(here())
file_create() Cria arquivos file_create("script.R")
file_copy() Copia arquivos file_copy("a.txt", "b.txt")
file_move() Move/renomeia file_move("old.R", "new.R")
file_delete() Deleta arquivos file_delete("temp.txt")
file_info() Informações detalhadas file_info("data.csv")

Por que usar estes pacotes?

Problema comum

# NÃO FAÇA ISSO
setwd("C:/Users/MeuNome/Documents/projeto")
dados <- read.csv("../data/arquivo.csv")

Problemas:

  • Não funciona em outros computadores
  • Quebra com mudança de estrutura de pastas
  • Dificulta colaboração

Solução

# FAÇA ISSO
library(here)
library(fs)

dados <- read.csv(here("data", "arquivo.csv"))
file_copy(
  here("data", "raw", "dados.xlsx"),
  here("data", "clean", "dados_processados.csv"))

Vantagens:

  • Funciona em qualquer máquina
  • Multiplataforma (Windows, Mac, Linux)
  • Código reprodutível
  • Facilita colaboração

Estrutura recomendada para projetos

meu_projeto/
├── meu_projeto.Rproj      # Arquivo de projeto
├── README.md              # Documentação
├── .gitignore             # Arquivos ignorados pelo Git
├── data/
│   ├── raw/               # Dados originais (nunca modificar!)
│   └── clean/             # Dados processados
├── scripts/
│   ├── 01-import.R        # Importação de dados
│   ├── 02-clean.R         # Limpeza e transformação
│   └── 03-analyze.R       # Análises
├── outputs/               # Resultados, tabelas
├── figures/               # Gráficos exportados
└── reports/               # Relatórios (Rmd, qmd)

Template de projeto automatizado

Use esta função para criar projetos padronizados:

criar_projeto_padrao <- function(nome) {
  # Criar projeto
  usethis::create_project(nome)
  
  # Estrutura de pastas
  fs::dir_create(here::here("data", c("raw", "clean")))
  fs::dir_create(here::here(c("scripts", "outputs", "figures", "reports")))
  
  # Scripts básicos
  fs::file_create(here::here("scripts", c(
    "01-import.R",
    "02-clean.R", 
    "03-analyze.R"
  )))
  
  # Documentação
  usethis::use_readme_md()
  
  # Git
  usethis::use_git()
  
  message("✅ Projeto criado com sucesso!")
}

# Usar:
criar_projeto_padrao("minha_analise")

Links úteis

Documentação oficial

Artigos e tutoriais

Pacotes complementares


Contribuindo

Contribuições são bem-vindas! Se você encontrou um erro ou tem sugestões de melhoria:

  1. Abra uma issue descrevendo o problema/sugestão
  2. Faça um fork do projeto
  3. Crie uma branch para sua feature (git checkout -b feature/MinhaFeature)
  4. Commit suas mudanças (git commit -m 'Adiciona nova feature')
  5. Push para a branch (git push origin feature/MinhaFeature)
  6. Abra um Pull Request

Autoria

Jennifer Luz Lopes
Engenheira Agrônoma | Doutora em Melhoramento Genético de Plantas

LinkedIn GitHub Site e Newsletter


Licença

Este projeto está sob a licença MIT. License: MIT


Agradecimentos

  • R-Ladies Global - Por promover diversidade na comunidade R
  • R-Ladies Goiânia - Pela oportunidade de compartilhar conhecimento
  • Posit/RStudio - Pelas ferramentas incríveis que facilitam nosso trabalho

Contato

  • R-Ladies Goiânia:Site
  • R-Ladies Goiânia: Meetup

Feito com 💜 para a comunidade R

R-Ladies Goiânia

About

Gerenciamento de Projetos em R | Slides disponíveis no link.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published