Erros e warnings frequentes

A lista a seguir apresenta alguns erros e warnings que apareceram na aula (seja por dúvida presencial, seja no chat do Google Meet).

Instalação

RTools

Para pessoas que utilizam o sistema operacional Windows, a aviso (warning) abaixo pode aparecer em alguns contextos:

WARNING: Rtools is required to build R packages but is not currently installed.
Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Instalando pacote em ‘C:/Users/.../AppData/Local/R/win-library/4.4’
(como ‘lib’ não foi especificado)

Para que esse aviso não apareça mais, você pode instalar o Rtools no seu computador. O RTools é um software (não é um pacote do R), portanto você precisa fazer o download da versão compatível com a versão do R que você está utilizando, e instalar no seu computador.

Para fazer o download, acesse o link https://cran.rstudio.com/bin/windows/Rtools/, e escolha a versão do RTools compatível com a versão do R que você está utilizando:

Captura de tela: página de download do RTools

Para consultar a versão do R que você está utilizando, você pode rodar o seguinte comando no console do R:

R.version.string
[1] "R version 4.4.1 (2024-06-14)"

Conceitos básicos

Instalando pacotes

O erro a seguir ocorre quando o usuário tenta instalar um pacote sem aspas. O correto é colocar o nome do pacote entre aspas.

# O código abaixo gerará um erro:
install.packages(janitor)
Error in eval(call, envir = parent.frame()): object 'janitor' not found

A função deve receber o nome do pacote entre aspas, pois é um texto:

# O código abaixo funcionará:
install.packages("janitor")

Pacote não encontrado

O erro a seguir ocorre quando tentamos carregar um pacote que não foi instalado anteriormente. Para resolver, precisamos instalar o pacote.

# O código abaixo gerará um erro:
library(nome_pacote)
Error in library(nome_pacote): there is no package called 'nome_pacote'

Para que consiga acessar, é necessário instalar o pacote, e depois carregá-lo:

install.packages("nome_pacote")
library(nome_pacote)

Objeto não encontrado

O erro a seguir ocorre quando tentamos acessar um objeto que não consta no painel Environment. Existe alguns motivos para isso acontecer:

  • O objeto não foi criado (provavelmente precisa executar o código que cria o objeto);

  • O objeto existe no painel Environment, mas estamos tentando acessá-lo com o nome incorreto.

No exemplo a seguir, o código gerará um erro pois o objeto que estamos tentando acessar ainda não foi criado:

# O código abaixo gerará um erro:
length(estados_sudeste)
Error: object 'estados_sudeste' not found

Após criar o objeto, conseguimos utilizá-lo:

estados_sudeste <- c("SP", "RJ", "MG", "ES")
length(estados_sudeste)
[1] 4

Função não encontrada

O erro could not find function ocorre quando tentamos acessar uma função que não está sendo encontrada. Isso pode acontecer por alguns motivos:

  • A função faz parte de um pacote que não foi carregado (precisamos carregar o pacote antes);

  • A função foi escrita de forma incorreta (por exemplo, com letras maiúsculas ou minúsculas incorretas).

Pacote não carregado

No exemplo a seguir, queremos limpar o nome das colunas do data frame iris:

head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

O código a seguir gerará um erro pois a função clean_names() faz parte do pacote janitor, mas o pacote não foi carregado:

clean_names(iris)
Error in clean_names(iris): could not find function "clean_names"

Para corrigir, precisamos carregar o pacote janitor:

library(janitor)
iris_nome_limpo <- clean_names(iris)
head(iris_nome_limpo)
  sepal_length sepal_width petal_length petal_width species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

Erro de digitação

No exemplo a seguir, o código gerará um erro pois a função length() está escrito de forma incorreta:

# O código abaixo gerará um erro:
lenght(letters)
Error in lenght(letters): could not find function "lenght"

Para corrigir, precisamos escrever a função corretamente:

length(letters)
[1] 26

Importação

Arquivo não encontrado

Ao importar um arquivo, é importante que o caminho esteja correto. Caso contrário, o código gerará um erro.

library(tidyverse)
# O caminho abaixo está incorreto, esse arquivo não existe
# no nosso projeto:
sidra_4092 <- read_csv("SIDRAR.csv")
Error: 'SIDRAR.csv' does not exist in current working directory ('/Users/beatrizmilz/Documents/IPEA-DATALAB/curso_r_intro_202409').

Corrigindo o arquivo, o código funcionará:

sidra_4092 <- read_csv("dados/sidrar_4092_bruto.csv")
glimpse(sidra_4092)
Rows: 27,000
Columns: 13
$ `Nível Territorial (Código)`                                              <dbl> …
$ `Nível Territorial`                                                       <chr> …
$ `Unidade de Medida (Código)`                                              <dbl> …
$ `Unidade de Medida`                                                       <chr> …
$ Valor                                                                     <dbl> …
$ `Unidade da Federação (Código)`                                           <dbl> …
$ `Unidade da Federação`                                                    <chr> …
$ `Trimestre (Código)`                                                      <dbl> …
$ Trimestre                                                                 <chr> …
$ `Variável (Código)`                                                       <dbl> …
$ Variável                                                                  <chr> …
$ `Condição em relação à força de trabalho e condição de ocupação (Código)` <dbl> …
$ `Condição em relação à força de trabalho e condição de ocupação`          <chr> …

Arquivo corrompido

O erro a seguir ocorre quando tentamos importar um arquivo que está corrompido. Nesse caso, precisamos baixar o arquivo novamente.

library(readxl)
excel_sheets("dados/sidrar_4092_bruto.xlsx")
# Error in readBin(con, raw(), n = size) : 
#   error reading from the connection