Code
# install.packages("remotes)
# remotes::install_github("luisdva/hexsession")
# hexsession::make_tile(packages=c("terra","sf","tidyr"))Seja bem vinda(o)
Jennifer Luz Lopes
November 10, 2025

Seja bem-vinda(o)!
Aqui é uma pausa para falar de dados.
A partir de hoje, toda semana vamos nos encontrar por aqui para conversar sobre ciência de dados de um jeito leve e prático.
Cada edição será uma pausa curta, mas que rende boas ideias. Você vai encontrar sempre a mesma estrutura, pensada para equilibrar aprendizado, reflexão e novidade:
Dose da Semana: uma dica prática de R para aplicar agora.
Conversa de Café: um espaço para pensar sobre aprendizado, propósito e comunidade.
Expresso de Notícias: novidades do universo R e da ciência de dados.
Pilar da Semana (rotativo): um conteúdo especial, que pode ser um projeto, uma reflexão ou uma novidade.
E hoje, começamos com chave de ouro. Simmm!
O R/Pharma é uma conferência online colaborativa, com foco científico e industrial, dedicada ao uso da tecnologia R no desenvolvimento de produtos farmacêuticos.
Além das sessões virtuais, o evento também realiza encontros presenciais e satélites em outras regiões do mundo, como na Ásia-Pacífico.
Mais do que uma conferência, o R/Pharma é uma comunidade que acredita no poder do código aberto e da colaboração entre empresas.
Sua missão é clara:
- Promover o uso de R e soluções open source na indústria farmacêutica.
- Organizar eventos comunitários de alto nível técnico e científico, sem viés comercial.
- Incentivar debates, troca de conhecimento e construção coletiva de soluções.
Durante o R/Pharma, eu escolhi os seguintes Workshops para trazer um conteúdo mais profundos e bacanas para vocês:
Hoje eu vou trazer um pouco do que eu aprendi e vi durantes a apresentação da Nicola Rennie e na semana que vem, trago mais uma dose de conhecimento sobre o Creating Polished, Branded Documents with Quarto (esse foi incrível também).
Bora? ahh, pega o café antes!

Ele foi FANTÁSTICO, eu acompanho o trabalho da Nicola, ela é uma grande inspiração para quem quer seguir o caminho do open-souce e de transformar a programação em R em algo acessível, palpável e reprodutível para a comunidade.
E ela começou trazendo a importancia de transformar scripts e funções em um pacote R, e que isso é um divisor de águas para quem quer dar um passo além na organização do próprio código.
“Quando deixamos de ter pastas soltas e passamos a estruturar tudo em um pacote, o trabalho ganha outra dimensão: fica mais fácil reutilizar, compartilhar, documentar e até testar o que fazemos.”
Durante o workshop, a proposta foi exatamente essa mostrar que criar um pacote não precisa ser um processo complicado.
Pessoal, e não é, estou trabalhando no desenvolvimento de
dois pacotes. O que precisamos é começar, ler os livros adequados, não tem atalho.
O conteúdo foi conduzido de forma leve e prática, revelando os elementos essenciais para colocar um pacote de pé:
desde a estrutura mínima e a escrita de funções;
até a criação de documentação e exemplos.
No fim das contas, esse workshop foi um lembrete importante: organizar o conhecimento em pacotes é uma das formas mais eficazes de devolver à comunidade aquilo que aprendemos.
Saímos com um pacote pronto, básico é claro, mas para 120 minutos, foi ótimo.
E está aqui, comecei do zero, abrindo o R e seguindo as etapas da apresentação.

Não tive disponibilidade para finalizar o README e etc, mas o resultado está no meu GitHub:
Uma coleção de (alguns dos) seguintes ingredientes:
Porque facilitam nossas vidas, concordam?
Executar código / Reutilizar código em diferentes projetos;
Compartilhar o código com outras pessoas;
Leitura da documentação em vez dos comentários, aqui é um ponto interessante!
A Nicola trouxe um ponto importante que é a desmistificação do processo.
Segundo ela:
“Criar um pacote não é algo reservado a programadores avançados, nem exige que o código seja perfeito. A ideia central é organizar, documentar e compartilhar o que você já faz, e fazer isso de um jeito que facilite a reutilização”.
A grande maioria das pessoas, acha que desenvolver pacotes não é para si.
SINTO MUITO, quem pensa assim, se engana!
É possível sim, fazer os seus desenvolvimentos, basta você querer, é claro!

Durante a explicação, ela mostrou passo a passo como tudo começa com o pacote usethis, que cria a estrutura básica do projeto e automatiza tarefas repetitivas.
Em seguida, apresentou o devtools, usado para construir, testar e instalar o pacote localmente.
A documentação ganha vida com o roxygen2, que transforma comentários no código em arquivos de ajuda completos.
E, se você quiser refinar o texto das funções, o stringr entra como um aliado opcional.
Acredite, esses caras fazem a coisa toda acontecer, consultem a documentação deles, tem muitas funções úteis:
Para criar a imagem clicável com os pacotes, usei o pacote hexsession, vejam a documentação, eu amei demais!
Warning: pacote 'htmltools' foi compilado no R versão 4.5.2
| Pacote | Função |
|---|---|
usethis |
Automatiza tarefas de desenvolvimento de pacotes e projetos em R (estrutura, licenças, Git, GitHub etc.) |
devtools |
Simplifica o desenvolvimento de pacotes (instalação, build, documentação, testes, checagens) |
roxygen2 |
Gera automaticamente documentação de funções a partir de comentários no código |
stringr (opcional) |
Facilita a manipulação de strings com funções consistentes e intuitivas |
Pegou o café aí?
Abre o R então!

Durante o workshop, a Nicola mostrou o fluxo completo, do zero até a criação de um pacote funcional. O processo pode parecer longo, mas na prática ele segue uma sequência lógica e muito tranquila.
Tudo começa com o usethis.
É ele quem cria a base do pacote: pastas, arquivos e o esqueleto de tudo o que vem depois.
Importante
Esse comando cria um novo diretório já configurado para funcionar como um pacote R.
Dentro dele, você encontrará pastas como R/ (onde ficam as funções) e arquivos essenciais como o DESCRIPTION, que guarda as informações básicas do pacote.
Para gerar a “árvore” do seu projeto use as funções dos pacotes fs e here, eles são ótimos:
├── DESCRIPTION # Metadados do pacote
├── NAMESPACE # Exportações geradas automaticamente
├── LICENSE # Arquivo de licença
├── _pkgdown.yml # Configuração do site pkgdown
├── cookbook.Rproj # Projeto do RStudio
├── README.md # Documentação inicial do projeto
│
├── R/ # Funções do pacote
│ ├── generate_hex.R
│ └── hello.R
│
├── man/ # Documentação (gerada pelo roxygen2)
│ ├── generate_hex.Rd
│ └── hello.Rd
│
├── vignettes/ # Tutoriais e materiais explicativos (opcional)
│ └── exemplo_tutorial.Rmd
│
├── tests/ # Testes automatizados (opcional)
│ └── testthat/
│ └── test_hello.R
│
├── data/ # Dados internos (opcional)
│ └── exemplo.rda
│
├── inst/ # Arquivos adicionais do pacote
│ └── extdata/
│ └── exemplo.csv
│
└── docs/ # Site pkgdown (não editar manualmente)
└── index.html
As funções que já usamos no dia a dia podem ser colocadas dentro da pasta R/.
Importante
Esse comando cria um arquivo .R pronto para receber a função.
A ideia é ir centralizando o que faz sentido compartilhar. Pode ser uma função simples, mas que você sabe que vai reutilizar.
roxygen2A documentação vem logo em seguida, e é aqui que o roxygen2 entra.
AQUI ESTÁ O PULO DO GATO:
Em vez de escrever arquivos de ajuda manualmente, basta comentar as funções com
#', e o pacote faz o resto.
Depois, é só rodar:
Importante
document() gera automaticamente a documentação em formato .Rd dentro da pasta man/.
Antes de instalar, a Nicola destacou a importância de testar. Essa parte, não vou trazer em profundidade, mas é essencial, pois gente, sempre vão aprecendo erros, e precisamos corrigí-los de imediato.
Deixei ao final a referência do livro R Packages para vocês, tem um capítulo chamado Testing, que aborda com profundidade essa etapa.
Com o devtools, dá para carregar o pacote sem precisar instalar toda hora.
Esse comando faz o R reconhecer as funções do pacote instantaneamente, o que facilita muito o desenvolvimento:
Agora é a hora boa!
Quando tudo estiver funcionando, é hora de instalar o pacote localmente.
Depois disso, ele já pode ser usado como qualquer outro, sinta orgulho de você:
Por fim, vem a etapa prazerosa que é compartilhar o pacote com a comunidade,
e no Workshop ela demonstrou como subir o projeto para o GitHub com um único comando:
A partir daí, o pacote ganha um endereço público, documentação visível e a chance de ser usado e melhorado por outras pessoas.
No workshop não deu tempo dela demonstrar a publicação do site. Normalmente usamos o pacote pkgdown. O pkgdown transforma a documentação do pacote em um site navegável, bonito e automático, uma vitrine perfeita para apresentar o seu pacote.

Trouxe alguns passos para vocês, de como fazer a publicacação.
Para isso, use a seguinte função:
Esse comando cria a estrutura necessária para o site dentro do pacote.
Depois disso, basta gerar a versão estática com:
Em poucos segundos, o pacote ganha uma página HTML com toda a documentação formatada, exemplos interativos, índice de funções e até histórico de versões.
Para publicar o site, basta ativar o GitHub Pages e conectar o repositório à pasta gerada automaticamente.
Se quiser automatizar o processo (para que o site se atualize toda vez que houver um novo commit), o próprio pacote usethis facilita:
Assim, o build do site passa a ser feito direto no GitHub, sem precisar rodar o comando manualmente.
Chegamos ao final, e como o assunto desta Newsletter foi sobre o Workshop de desenvolvimento de pacotes, github e mais, trouxe 4 referências interessantes para vocês:
Conheça mais sobre o trabalho da: Nicola Rennie, ela é especialista em visualização de dados com formação em estatística e ciência de dados, e tem interesse em compreender como comunicar ideias quantitativas complexas de forma acessível.
Livro dos experientes: Hadley Wickham and Jennifer Bryan
O que ficou mais forte para mim nesse workshop foi a ideia de que empacotar conhecimento é mais do que um ato técnico, é um gesto de generosidade.
Pense comigo:
Cada função que a gente organiza, documenta e compartilha vira uma forma de ajudar alguém a resolver um problema que nós já enfrentamos, concorda?
Provavelmente, você tem uma função que já te salvou tempo, provavelmente alguém mais precisa dela também.
Com isso, acredito que E essa é a beleza da comunidade R: aprender, construir e devolver. Um ciclo que transforma o código em colaboração, e a prática em propósito.
Que cada gole desperte uma nova ideia.
Que cada script abra uma nova conversa.
Que o Café com R, se torne um ponto de encontro nosso!