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:

@beatrizmilz boa tarde!! tudo bem ? Eu estou com o mesmo problema e nada dá certo, ao rodar o rmarkdown (knit) sempre dá erro de objeto não encontrado. Já tentei seguir sua dica 1 mas não deu. Já não sei o que fazer para dar certo !! obrigado

Oi @JulioGis ! Boas vindas ao Fórum!

Tudo bem, e com você?

Sugiro você ler esse post: Blog | Curso-R - o primeiro erro abordado é esse que você está recebendo.

O R não está encontrando o objeto DesmTI_Quilombola. Quando a gente clica em ‘Knit’, o RMarkdown executa os campos de código de forma sequencial, e ele não considera os objetos que já estão carregados na sua sessão. Todos os objetos que são usados nos campos de código do RMarkdown precisam ser criados ou carregados no próprio RMarkdown.

Você pode colocar aqui o trecho de código no seu arquivo onde você cria esse objeto DesmTI_Quilombola? obrigada!

@beatrizmilz Bom dia!!! Muito obrigado pela sua explicação bem clara!!!

com ela resolvi o problema. E vou seguir com o R , rmarkdown, Shiny etc… Muito Obrigado mesmo!!! :grinning: :grinning:

1 curtida

Bom dia Julio! Que bom que deu certo!! :tada: :tada: :tada:

1 curtida