Witold E Wolski
2018-Jul-10 15:44 UTC
[Rd] RMarkdown Vignettest in R packages with child is failing in package build
Dear List,
I am working on moving some Rmarkdown reports into the vignettes
folder of a package. While I was able to solve to problem of
parametrized reports in vignettes folder thanks to your invaluable
help (Thank you), I am now struggling with the following problem.
One of the reports which I am moving to vignettes includes the following code :
```{r}
child_docs <- "Grp2Analysis_MissingInOneCondtion.Rmd_t"
if(TRUE){
child_docs <- "Grp2Analysis_Empty.Rmd_t"
}
```
```{r includeMissingInOne, child = child_docs}
```
# this is line 351 from the error message
which depending on a test outcome includes one or the other Rmarkdown
document into the main document.
While this report renders executing rmarkdown::render or
devtools::build_vignettes, it fails when building the package with
devtools::build or R CMD build
given the following error:
Error in eval(x, envir = envir) : object 'child_docs' not found
Warning in readLines(if (is.character(input2)) { :
cannot open file './child_docs': No such file or directory
Quitting from lines 351-351 (./child_docs)
Error in readLines(if (is.character(input2)) { :
cannot open the connection
ERROR: installing vignettes failed
* removing
'C:/Users/wolski/AppData/Local/Temp/RtmpIti891/Rinst2cec49ca2170/SRMService'
In R CMD INSTALL
Have a great evening,
Best regards
Witek
--
Witold Eryk Wolski
Duncan Murdoch
2018-Jul-10 17:52 UTC
[Rd] RMarkdown Vignettest in R packages with child is failing in package build
On 10/07/2018 11:44 AM, Witold E Wolski wrote:> Dear List, > > I am working on moving some Rmarkdown reports into the vignettes > folder of a package. While I was able to solve to problem of > parametrized reports in vignettes folder thanks to your invaluable > help (Thank you), I am now struggling with the following problem. > > > One of the reports which I am moving to vignettes includes the following code : > > > ```{r} > child_docs <- "Grp2Analysis_MissingInOneCondtion.Rmd_t" > if(TRUE){ > child_docs <- "Grp2Analysis_Empty.Rmd_t" > } > > ``` > > ```{r includeMissingInOne, child = child_docs} > ``` > # this is line 351 from the error message > > which depending on a test outcome includes one or the other Rmarkdown > document into the main document. > > > While this report renders executing rmarkdown::render or > devtools::build_vignettes, it fails when building the package with > devtools::build or R CMD build > given the following error: > > > Error in eval(x, envir = envir) : object 'child_docs' not found > Warning in readLines(if (is.character(input2)) { : > cannot open file './child_docs': No such file or directory > Quitting from lines 351-351 (./child_docs) > Error in readLines(if (is.character(input2)) { : > cannot open the connection > ERROR: installing vignettes failed > * removing 'C:/Users/wolski/AppData/Local/Temp/RtmpIti891/Rinst2cec49ca2170/SRMService' > In R CMD INSTALL >Since you didn't give a path to that file, it will use the current working directory, which might be a temporary directory used during the package installation. Since you want this to work as a vignette, you need to include the child docs in your package. One way to do that is to put them in a new directory called "inst/children", which will be installed to "children" when your package is installed. Then the vignette can find the file as system.file(file.path("children", child_docs), package = "yourpackage") You could also put them in the "vignettes" directory, but there are special rules for how files there are installed or not, so I'd recommend against it. Duncan Murdoch
Witold E Wolski
2018-Jul-13 06:32 UTC
[Rd] RMarkdown Vignettest in R packages with child is failing in package build
Dear Duncan,
Thank you, got it working with your advice.
I did placed the child markdown documents into inst/ParametrizedReportsChild
And this is the code in the main vignette by which I include them:
child_docs <- "Grp2Analysis_MissingInOneCondtion.Rmd_t"
if(!sum(NAinfo$nrProteins > 0) > 0){
child_docs <- "Grp2Analysis_Empty.Rmd_t"
}
child_docs <-
system.file(file.path("ParametrizedReportsChild",child_docs),package
= "SRMService")
However, according to writing package vignettes
[https://cran.r-project.org/doc/manuals/R-exts.html#Writing-package-vignettes]
:
"All other files needed to re-make the vignettes (such as LaTeX style
files, BibTeX input files and files for any figures not created by
running the code in the vignette) _must_ be in the vignette source
directory."
So why placing those files i.e.
Grp2Analysis_MissingInOneCondtion.Rmd_t and Grp2Analysis_Empty.Rmd_t
in the vignettes folder and including them by:
child_docs <- "Grp2Analysis_MissingInOneCondtion.Rmd_t"
if(!sum(NAinfo$nrProteins > 0) > 0){
child_docs <- "Grp2Analysis_Empty.Rmd_t"
}
, did not work?
Have a great day,
best regards
Witek
On 10 July 2018 at 19:52, Duncan Murdoch <murdoch.duncan at gmail.com>
wrote:> On 10/07/2018 11:44 AM, Witold E Wolski wrote:
>>
>> Dear List,
>>
>> I am working on moving some Rmarkdown reports into the vignettes
>> folder of a package. While I was able to solve to problem of
>> parametrized reports in vignettes folder thanks to your invaluable
>> help (Thank you), I am now struggling with the following problem.
>>
>>
>> One of the reports which I am moving to vignettes includes the
following
>> code :
>>
>>
>> ```{r}
>> child_docs <- "Grp2Analysis_MissingInOneCondtion.Rmd_t"
>> if(TRUE){
>> child_docs <- "Grp2Analysis_Empty.Rmd_t"
>> }
>>
>> ```
>>
>> ```{r includeMissingInOne, child = child_docs}
>> ```
>> # this is line 351 from the error message
>>
>> which depending on a test outcome includes one or the other Rmarkdown
>> document into the main document.
>>
>>
>> While this report renders executing rmarkdown::render or
>> devtools::build_vignettes, it fails when building the package with
>> devtools::build or R CMD build
>> given the following error:
>>
>>
>> Error in eval(x, envir = envir) : object 'child_docs' not found
>> Warning in readLines(if (is.character(input2)) { :
>> cannot open file './child_docs': No such file or directory
>> Quitting from lines 351-351 (./child_docs)
>> Error in readLines(if (is.character(input2)) { :
>> cannot open the connection
>> ERROR: installing vignettes failed
>> * removing
>>
'C:/Users/wolski/AppData/Local/Temp/RtmpIti891/Rinst2cec49ca2170/SRMService'
>> In R CMD INSTALL
>>
>
>
> Since you didn't give a path to that file, it will use the current
working
> directory, which might be a temporary directory used during the package
> installation. Since you want this to work as a vignette, you need to
> include the child docs in your package. One way to do that is to put them
> in a new directory called "inst/children", which will be
installed to
> "children" when your package is installed. Then the vignette can
find the
> file as
>
> system.file(file.path("children", child_docs), package =
"yourpackage")
>
> You could also put them in the "vignettes" directory, but there
are special
> rules for how files there are installed or not, so I'd recommend
against it.
>
> Duncan Murdoch
--
Witold Eryk Wolski
Reasonably Related Threads
- RMarkdown Vignettest in R packages with child is failing in package build
- RMarkdown Vignettest in R packages with child is failing in package build
- Problem building rmarkdown vignettes with child
- Parametrized Vignettest in R packages
- Parametrized Vignettest in R packages