Capítulo 4 Pacotes, variáveis e funções

“Conforme você seleciona e reduz suas coisas, você se entende melhor.”
– Fumio Sasaki

Como falei no último capítulo, um pacote não é nada mais que uma caixa de ferramentas. Cada função dentro de um pacote servirá como uma ferramenta diferente, com funcionalidades diferentes. Por exemplo, a função filter(), do pacote dplyr, serve para você filtrar valores dentro de uma coluna. A função select(), do mesmo pacote, serve para você selecionar apenas as colunas que você precisa dentro de um dataframe.

Agora, você sabe o que faz a função coalesce()? Bom, você pode dizer que sim, mas você realmente a usa em todo código que você usa o dplyr? A resposta, muito provavelmente, é que não. Então você não concorda comigo que não é necessário carregá-la?

Sempre que você carrega um pacote, seja usando o comando library(), quanto o require() ou outros, você não está carregando apenas as funções que vai utilizar, mas TODAS as funções de um pacote! Para o dplyr, você vai carregar dezenas de funções que você não vai usar!

Em vez de fazer isso (que pode até mesmo bugar o seu código):

library(dplyr)

dataframe <- dataframe |> 
  mutate(col1 = Sys.Date() - col2) |> 
  filter(col1 >= 30)

Faça:

dataframe <- dataframe |> 
  dplyr::mutate(col1 = Sys.Date() - col2) |> 
  dplyr::filter(col1 >= 30)

O mesmo vale para variáveis de datas, caminhos e funções que você declara no começo de um código. Declarar 20 variáveis e usar apenas 3 ou 4 delas não é um bom negócio. Aprenda a pegar apenas a ferramenta que você vai usar, e depois guardá-la no seu devido lugar.

Em vez de fazer isso:

hoje <- Sys.Date()
ontem <- hoje - 1
amanha <- hoje + 1
hoje_dia <- format(hoje, "%d")
hoje_mes <- format(hoje, "%m")
hoje_ano <- format(hoje, "%Y")
hoje_mes_extenso <- format(hoje, "%B")

caminho <- paste0("C:/users/Desktop/PASTA/", hoje_ano, "/", hoje_mes_extenso)

write.csv(x, file = paste0(caminho, "/NOME_ARQUIVO", hoje_dia, ".", hoje_mes, ".csv"))

Faça:

hoje <- Sys.Date()

caminho <- paste0("C:/users/Desktop/PASTA/", format(hoje, "%Y/%B"))

write.csv(x, file = paste0(caminho, "/NOME_ARQUIVO", format(hoje, "%d.%m"), ".csv"))

Veja como o seu código ficou bem mais simples e fácil de ser entendido. Use e abuse do format(). E nada de declarar funções que você não vai utilizar!