R Markdown : erro ao ler base de dados

Bom dia pessoal,

Ao gerar um relatório utilizando o R Markdown, nos comandos iniciais de leitura do banco de dados houve a seguinte mensagem de erro. agradeço a atenção de todes.

knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning = FALSE)
library(tidyverse)
imdb <- readr::read_rds("dados/imdb.rds")

Mensagem de Erro apontada apenas na linha: imdb <- readr::read_rds(“dados/imdb.rds”)
Error in gzfile(file, “rb”) : não é possível abrir a conexão

muito obrigada pela atenção.

Caso seja necessário, envio abaixo mensagem completa de erro:

– Attaching packages --------------------------------------- tidyverse 1.3.0 –
v ggplot2 3.3.2 v purrr 0.3.4
v tibble 3.0.3 v dplyr 1.0.2
v tidyr 1.1.2 v stringr 1.4.0
v readr 1.4.0 v forcats 0.5.0
– Conflicts ------------------------------------------ tidyverse_conflicts() –
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
Quitting from lines 6-8 (modelo_relatorio_analise_dados–2-.Rmd)
Error in gzfile(file, “rb”) : não é possível abrir a conexão
Calls: … withVisible -> eval -> eval -> -> readRDS -> gzfile
Além disso: Warning message:
In gzfile(file, “rb”) :
não foi possível abrir o arquivo comprimido ‘dados/imdb.rds’, motivo provável ‘No such file or directory’

Execução interrompida

Observação: em minha tela de erro no R Markdown, aparece a palavra “Anonymous” (entre os sinais “< >”) após a palavra “Calls:”. (Não sei se essa informação adicional pode ajudar.)

Bom dia @Graciella!

A mensagem: In gzfile(file, “rb”) : não foi possível abrir o arquivo comprimido ‘…/dados/imdb.rds’, motivo provável ‘No such file or directory’ aponta que o arquivo não foi encontrado.
O caminho (path) até o arquivo está correto? Os caminhos, quando se trata de arquivos R Markdown, por padrão utilizam como diretório (pasta no computador) ‘raiz’ o diretório em que o arquivo .Rmd está salvo.
Tem diferentes formas de resolver isso, mas você precisa indicar o caminho correto até o arquivo.

Dica 1:
Uma forma é usar o atalho TAB do teclado para navegar até o arquivo que você quer, e descobrir o caminho correto.

imdb <- readr::read_rds("COLOQUE O MOUSE AQUI E CLIQUE A TECLA TAB")

Outra forma que eu gosto bastante é utilizando o pacote here, pois ele ajuda a evitar esses problemas.
Exemplo:
here::here("dados", "imdb.rds")

caminho <- here::here("dados", "imdb.rds")
imdb <- readr::read_rds(caminho)

Gerará um caminho: partindo do diretório do seu projeto, então no diretório dados (que eu indiquei no primeiro argumento), e então o arquivo imdb.rds . (Aqui só funcionará se na raíz do seu projeto houver a pasta dados, e dentro dela o arquivo imdb.rds)

Dica 2:
Caso não dê certo as dicas acima e você queira uma forma mais rápida, é possível experimentar os outros arquivos que estão na pasta do curso (tem muitos outros formatos lá, não apenas .rds).

Sugestão:
Tente o código abaixo para importar a base imdb. É uma forma de importar uma base através do código seguinte (que não depende do path no seu projeto, pois o arquivo está online):

imdb <- readr::read_delim("https://raw.githubusercontent.com/curso-r/202010-r4ds-1/master/dados/imdb2.csv", ";", escape_double = FALSE, trim_ws = TRUE)

(mas de qualquer forma é bom entender o que está causando o erro… pois essas questões de caminho do arquivo acontecem frequentemente!)

1 Curtida

Olá @beatrizmilz, bom dia.
muito obrigada por todas Dicas e possibilidades de resolução do problema. vou verificar todos. obrigada pela sua atenção. :slight_smile:

1 Curtida

De nada @Graciella!

Se der certo ou não, responde aqui avisando, assim a gente sabe se deu certo!

Abraços e boa sorte

1 Curtida

Oi @beatrizmilz,

testei sua Dica 1 (com o mouse e tecla Tab) e não encontrou a base de dados.

Então, criei um novo arquivo extensão . Rmd e tentei o comando abaixo. Rodei o script e Deu certo ! E para conferir se estava certinho. Segui sua Dica 1 (com o mouse e tecla Tab) e encontrou a base de dados com extensão . rds.

Muito obrigada pela atenção.

Resumindo:

Esse comando abaixo : Deu certo ! conseguiu ler a base de dados.

library(tidyverse)

imdb <- read_rds("../dados/imdb.rds")

E esse outro comando que gerou essa dúvida. Deu mensagem Erro e não leu a base de dados.

library(tidyverse)
imdb <- readr::read_rds("dados/imdb.rds")

obrigada pela atenção.

Oi @Graciella! Que bom que deu certo!

o ../ no caminho significa que você está indicando que o arquivo está em uma pasta ‘acima’ do diretório atual.

Então não foi um erro do R, o “problema” era o caminho até o arquivo mesmo :slight_smile:

No código que gerou o erro, tente adequar o caminho até o arquivo e veja se o erro continua acontecendo…lembrando que se você deixou seu arquivo .Rmd em uma pasta diferente da pasta principal do projeto, por padrão o R irá iniciar a procura do arquivo na pasta onde o arquivo .Rmd está salvo (isso é algo do RMarkdown).

Abraços!

1 Curtida

Oi @beatrizmilz, você é fera ! Conforme sua Dica 1: Instalei o pacote here. E deu certinho os comandos que você sugeriu.

E sobre a localização dos arquivos: todos meus arquivos …Rmd , .R e também a pasta dados estão todas dentro da mesma pasta raiz. :slight_smile:

here::here("dados", "imdb.rds")
caminho <- here::here("dados", "imdb.rds")
imdb <- readr::read_rds(caminho)

library(tidyverse)
imdb <- readr::read_rds(caminho)

muito obrigada :slight_smile: