Usando objetos do .GlobalEnv no rmarkdown para pdf

Caros amigos de R, Estou trabalhando num relatório de um projeto para gerar um pdf e um html periodicamente no final de cada semana. O passos são os seguintes: 1 - importar os dados; 2 - aplicar as etiquetas; 3 - editar os dados; 4 - Fazer o grafico 1; 5 - fazer o grafico 2; bla bla etc. 10 - gerar o relatório; 11 - mandar por email periodicamente. Pra cada passo eu tenho um script separado e um script principal que chama todos eles em sequência e assim consigo me organizar. A minha questão é que já trabalhei diversas vezes com o Sweave e nunca passei por este problema, e agora começando com o rmarkdown estou batendo cabeça. A minha questão é que no script do primeiro gráfico eu gero um objeto "fluxp" que está salvo no disco ("meusdados.RData") e tambem está no .GlobalEnv. Quando eu renderizo para html dá certo. Mas quando renderizo para pdf, o arquivo vem sem a figura. Depois de pedir pra retornar os erros, vem que ele não acha o objeto do grafico. Fuçando por ai, entendi que a renderização abre uma sessão nova no segundo plano e por isso não consegue achar o objeto. Mas não estou conseguindo contornar a situação. Alguma luz? --- title: "Resultado do projeto" author: "Pedro Brasil" date: output: always_allow_html: true --- ```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE) knitr::opts_chunk$set(cache = TRUE) knitr::opts_chunk$set(error = TRUE) ``` ## Fluxograma de inclusão e exclusão ```{r fluxograma, echo=FALSE, message=TRUE, warning=TRUE, paged.print=TRUE} DiagrammeR::grViz(fluxp) ``` Error in DiagrammeR::grViz(fluxp): objeto 'fluxp' não encontrado Pedro Brasil

Bom dia E se você salvar o gráfico em PNG e incluir com html (<img src="img.png" alt="image", >) ou mesmo o markdown ()? daniel Em ter., 18 de jan. de 2022 às 11:04, Pedro Emmanuel Alvarenga Americano do Brasil por (R-br) <r-br@listas.c3sl.ufpr.br> escreveu:
Caros amigos de R,
Estou trabalhando num relatório de um projeto para gerar um pdf e um html periodicamente no final de cada semana. O passos são os seguintes: 1 - importar os dados; 2 - aplicar as etiquetas; 3 - editar os dados; 4 - Fazer o grafico 1; 5 - fazer o grafico 2; bla bla etc. 10 - gerar o relatório; 11 - mandar por email periodicamente. Pra cada passo eu tenho um script separado e um script principal que chama todos eles em sequência e assim consigo me organizar.
A minha questão é que já trabalhei diversas vezes com o Sweave e nunca passei por este problema, e agora começando com o rmarkdown estou batendo cabeça. A minha questão é que no script do primeiro gráfico eu gero um objeto "fluxp" que está salvo no disco ("meusdados.RData") e tambem está no .GlobalEnv. Quando eu renderizo para html dá certo. Mas quando renderizo para pdf, o arquivo vem sem a figura. Depois de pedir pra retornar os erros, vem que ele não acha o objeto do grafico. Fuçando por ai, entendi que a renderização abre uma sessão nova no segundo plano e por isso não consegue achar o objeto. Mas não estou conseguindo contornar a situação. Alguma luz?
--- title: "Resultado do projeto" author: "Pedro Brasil" date: output: always_allow_html: true ---
```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE) knitr::opts_chunk$set(cache = TRUE) knitr::opts_chunk$set(error = TRUE) ```
## Fluxograma de inclusão e exclusão
```{r fluxograma, echo=FALSE, message=TRUE, warning=TRUE, paged.print=TRUE} DiagrammeR::grViz(fluxp) ``` Error in DiagrammeR::grViz(fluxp): objeto 'fluxp' não encontrado
Pedro Brasil _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Daniel Tiezzi, MD, PhD Associate Professor Breast Disease and Gynecologic Oncology Division Department of Gynecology and Obstetrics University of São Paulo Brazil

Ei Daniel, Eu já tinha pensado nesta alternativa mas eu cairia em outro problema. Eu salvo os arquivos com as datas nos nomes por exemplo png(paste0("Meugrafico_",Sys.Date(),".png")) bla bla bla dev.off() Então pra chamar o grafico precisaria ser dentro do chunk do R. Eu tentei ```{r fluxograma, include=TRUE} knitr::include_graphics(here("resultados",paste0("Fluxograma_exclusao_",Sys.Date(),".png"))) ``` Mas de novo o html está ok e o pdf retorna que não encontra o arquivo. Engraçado é que dentro do .Rmd sempre funciona quando peço pra executar somente este chunk. Eu também tentei ... ```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE) knitr::opts_chunk$set(cache = TRUE) knitr::opts_chunk$set(error = TRUE) library(here) library(DiagrammeR) load(here("dados",paste0("Meusdados_",Sys.Date(),".Rdata"))) ``` Pra ver se carregar os dados na sessão do rmarkdown resolve... só que não! Pedro Brasil Em ter., 18 de jan. de 2022 às 11:14, Daniel Guimarães Tiezzi < dtiezzi@usp.br> escreveu:
Bom dia
E se você salvar o gráfico em PNG e incluir com html (<img src="img.png" alt="image", >) ou mesmo o markdown ()?
daniel
Em ter., 18 de jan. de 2022 às 11:04, Pedro Emmanuel Alvarenga Americano do Brasil por (R-br) <r-br@listas.c3sl.ufpr.br> escreveu:
Caros amigos de R,
Estou trabalhando num relatório de um projeto para gerar um pdf e um html periodicamente no final de cada semana. O passos são os seguintes: 1 - importar os dados; 2 - aplicar as etiquetas; 3 - editar os dados; 4 - Fazer o grafico 1; 5 - fazer o grafico 2; bla bla etc. 10 - gerar o relatório; 11 - mandar por email periodicamente. Pra cada passo eu tenho um script separado e um script principal que chama todos eles em sequência e assim consigo me organizar.
A minha questão é que já trabalhei diversas vezes com o Sweave e nunca passei por este problema, e agora começando com o rmarkdown estou batendo cabeça. A minha questão é que no script do primeiro gráfico eu gero um objeto "fluxp" que está salvo no disco ("meusdados.RData") e tambem está no .GlobalEnv. Quando eu renderizo para html dá certo. Mas quando renderizo para pdf, o arquivo vem sem a figura. Depois de pedir pra retornar os erros, vem que ele não acha o objeto do grafico. Fuçando por ai, entendi que a renderização abre uma sessão nova no segundo plano e por isso não consegue achar o objeto. Mas não estou conseguindo contornar a situação. Alguma luz?
--- title: "Resultado do projeto" author: "Pedro Brasil" date: output: always_allow_html: true ---
```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE) knitr::opts_chunk$set(cache = TRUE) knitr::opts_chunk$set(error = TRUE) ```
## Fluxograma de inclusão e exclusão
```{r fluxograma, echo=FALSE, message=TRUE, warning=TRUE, paged.print=TRUE} DiagrammeR::grViz(fluxp) ``` Error in DiagrammeR::grViz(fluxp): objeto 'fluxp' não encontrado
Pedro Brasil _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Daniel Tiezzi, MD, PhD Associate Professor Breast Disease and Gynecologic Oncology Division Department of Gynecology and Obstetrics University of São Paulo Brazil

Exclusivamente durante a fase de geração do relatório corrente "copie" o arquivo para um nome fixo, corra todo o processo e no fim exclua apenas esse "arquivo temporário de nome fixo" para fazer de novo no seu "... bla bla blá..." On Tue, Jan 18, 2022 at 12:11 PM Pedro Emmanuel Alvarenga Americano do Brasil por (R-br) <r-br@listas.c3sl.ufpr.br> wrote:
Ei Daniel,
Eu já tinha pensado nesta alternativa mas eu cairia em outro problema. Eu salvo os arquivos com as datas nos nomes por exemplo
png(paste0("Meugrafico_",Sys.Date(),".png")) bla bla bla dev.off()
Então pra chamar o grafico precisaria ser dentro do chunk do R. Eu tentei
```{r fluxograma, include=TRUE}
knitr::include_graphics(here("resultados",paste0("Fluxograma_exclusao_",Sys.Date(),".png"))) ``` Mas de novo o html está ok e o pdf retorna que não encontra o arquivo. Engraçado é que dentro do .Rmd sempre funciona quando peço pra executar somente este chunk.
Eu também tentei ...
```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE) knitr::opts_chunk$set(cache = TRUE) knitr::opts_chunk$set(error = TRUE) library(here) library(DiagrammeR) load(here("dados",paste0("Meusdados_",Sys.Date(),".Rdata"))) ``` Pra ver se carregar os dados na sessão do rmarkdown resolve... só que não!
Pedro Brasil
Em ter., 18 de jan. de 2022 às 11:14, Daniel Guimarães Tiezzi < dtiezzi@usp.br> escreveu:
Bom dia
E se você salvar o gráfico em PNG e incluir com html (<img src="img.png" alt="image", >) ou mesmo o markdown ()?
daniel
Em ter., 18 de jan. de 2022 às 11:04, Pedro Emmanuel Alvarenga Americano do Brasil por (R-br) <r-br@listas.c3sl.ufpr.br> escreveu:
Caros amigos de R,
Estou trabalhando num relatório de um projeto para gerar um pdf e um html periodicamente no final de cada semana. O passos são os seguintes: 1 - importar os dados; 2 - aplicar as etiquetas; 3 - editar os dados; 4 - Fazer o grafico 1; 5 - fazer o grafico 2; bla bla etc. 10 - gerar o relatório; 11 - mandar por email periodicamente. Pra cada passo eu tenho um script separado e um script principal que chama todos eles em sequência e assim consigo me organizar.
A minha questão é que já trabalhei diversas vezes com o Sweave e nunca passei por este problema, e agora começando com o rmarkdown estou batendo cabeça. A minha questão é que no script do primeiro gráfico eu gero um objeto "fluxp" que está salvo no disco ("meusdados.RData") e tambem está no .GlobalEnv. Quando eu renderizo para html dá certo. Mas quando renderizo para pdf, o arquivo vem sem a figura. Depois de pedir pra retornar os erros, vem que ele não acha o objeto do grafico. Fuçando por ai, entendi que a renderização abre uma sessão nova no segundo plano e por isso não consegue achar o objeto. Mas não estou conseguindo contornar a situação. Alguma luz?
--- title: "Resultado do projeto" author: "Pedro Brasil" date: output: always_allow_html: true ---
```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE) knitr::opts_chunk$set(cache = TRUE) knitr::opts_chunk$set(error = TRUE) ```
## Fluxograma de inclusão e exclusão
```{r fluxograma, echo=FALSE, message=TRUE, warning=TRUE, paged.print=TRUE} DiagrammeR::grViz(fluxp) ``` Error in DiagrammeR::grViz(fluxp): objeto 'fluxp' não encontrado
Pedro Brasil _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Daniel Tiezzi, MD, PhD Associate Professor Breast Disease and Gynecologic Oncology Division Department of Gynecology and Obstetrics University of São Paulo Brazil
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Ei turma, Obrigado pela ajuda aqui. Revendo o código eu descobri alguns erros bobos nos nomes do Meusdados.RData. Mesmo assim, executar o plot dentrdo do *.Rmd não estava dando certo. Então eu dei uma fuçada no include_graphics e ficou assim (dando certo). Nao tenho certeza absoluta se foi so isso que fez a diferença mas... ```{r fluxograma, warning=TRUE, paged.print=TRUE} knitr::include_graphics(here("resultados",paste0("Fluxograma_exclusao_",Sys.Date(),".png")), auto_pdf = TRUE) ``` Esse auto_pdf significa se houver um pdf de mesmo nome que o arquivo png no mesmo diretório, ele carrega o pdf no lugar do png. De fato essa figura tinha um pdf no mesmo diretório. Veremos se nas próximas figuras haverá o mesmo problema. Pedro Brasil Em ter., 18 de jan. de 2022 às 13:18, Cesar Rabak <cesar.rabak@gmail.com> escreveu:
Exclusivamente durante a fase de geração do relatório corrente "copie" o arquivo para um nome fixo, corra todo o processo e no fim exclua apenas esse "arquivo temporário de nome fixo" para fazer de novo no seu "... bla bla blá..."
On Tue, Jan 18, 2022 at 12:11 PM Pedro Emmanuel Alvarenga Americano do Brasil por (R-br) <r-br@listas.c3sl.ufpr.br> wrote:
Ei Daniel,
Eu já tinha pensado nesta alternativa mas eu cairia em outro problema. Eu salvo os arquivos com as datas nos nomes por exemplo
png(paste0("Meugrafico_",Sys.Date(),".png")) bla bla bla dev.off()
Então pra chamar o grafico precisaria ser dentro do chunk do R. Eu tentei
```{r fluxograma, include=TRUE}
knitr::include_graphics(here("resultados",paste0("Fluxograma_exclusao_",Sys.Date(),".png"))) ``` Mas de novo o html está ok e o pdf retorna que não encontra o arquivo. Engraçado é que dentro do .Rmd sempre funciona quando peço pra executar somente este chunk.
Eu também tentei ...
```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE) knitr::opts_chunk$set(cache = TRUE) knitr::opts_chunk$set(error = TRUE) library(here) library(DiagrammeR) load(here("dados",paste0("Meusdados_",Sys.Date(),".Rdata"))) ``` Pra ver se carregar os dados na sessão do rmarkdown resolve... só que não!
Pedro Brasil
Em ter., 18 de jan. de 2022 às 11:14, Daniel Guimarães Tiezzi < dtiezzi@usp.br> escreveu:
Bom dia
E se você salvar o gráfico em PNG e incluir com html (<img src="img.png" alt="image", >) ou mesmo o markdown ()?
daniel
Em ter., 18 de jan. de 2022 às 11:04, Pedro Emmanuel Alvarenga Americano do Brasil por (R-br) <r-br@listas.c3sl.ufpr.br> escreveu:
Caros amigos de R,
Estou trabalhando num relatório de um projeto para gerar um pdf e um html periodicamente no final de cada semana. O passos são os seguintes: 1 - importar os dados; 2 - aplicar as etiquetas; 3 - editar os dados; 4 - Fazer o grafico 1; 5 - fazer o grafico 2; bla bla etc. 10 - gerar o relatório; 11 - mandar por email periodicamente. Pra cada passo eu tenho um script separado e um script principal que chama todos eles em sequência e assim consigo me organizar.
A minha questão é que já trabalhei diversas vezes com o Sweave e nunca passei por este problema, e agora começando com o rmarkdown estou batendo cabeça. A minha questão é que no script do primeiro gráfico eu gero um objeto "fluxp" que está salvo no disco ("meusdados.RData") e tambem está no .GlobalEnv. Quando eu renderizo para html dá certo. Mas quando renderizo para pdf, o arquivo vem sem a figura. Depois de pedir pra retornar os erros, vem que ele não acha o objeto do grafico. Fuçando por ai, entendi que a renderização abre uma sessão nova no segundo plano e por isso não consegue achar o objeto. Mas não estou conseguindo contornar a situação. Alguma luz?
--- title: "Resultado do projeto" author: "Pedro Brasil" date: output: always_allow_html: true ---
```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE) knitr::opts_chunk$set(cache = TRUE) knitr::opts_chunk$set(error = TRUE) ```
## Fluxograma de inclusão e exclusão
```{r fluxograma, echo=FALSE, message=TRUE, warning=TRUE, paged.print=TRUE} DiagrammeR::grViz(fluxp) ``` Error in DiagrammeR::grViz(fluxp): objeto 'fluxp' não encontrado
Pedro Brasil _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Daniel Tiezzi, MD, PhD Associate Professor Breast Disease and Gynecologic Oncology Division Department of Gynecology and Obstetrics University of São Paulo Brazil
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
participantes (3)
-
Cesar Rabak
-
Daniel Guimarães Tiezzi
-
Pedro Emmanuel Alvarenga Americano do Brasil