[Rd] Parametrized Vignettest in R packages
Witold E Wolski
wewol@ki @ending from gm@il@com
Mon Jul 9 22:11:32 CEST 2018
Dear Duncan,
Was close to giving up to use the parameterized rmarkown as vignettes.
But your suggestions to use quote and eval, as well as to use the
package parameter in data
made it work, with all devtools::install,check,build and
build_vignettes as well as with R CMD ... etc.
But most importantly it also still works with:
rmarkdown::render("vignettes/tr_srm_summary.Rmd",
params=list(configuration=skylineconfig, data=sample_analysis ))
THANK YOU.
This is how my vignette header looks (see below) and it works.
---
title: "Titel"
author: "WEW using FGCZ.ETHZ.CH"
date: "`r Sys.Date()`"
output:
pdf_document: default
html_document: default
params:
configuration: !r quote(get(data(skylineconfig, package="myPackage")))
data: !r quote(get(data(sample_analysis, package="myPackage")))
vignette: >
%\VignetteIndexEntry{Summarize Peptide Level Measurements}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r setup, include=FALSE}
library(tidyverse)
knitr::opts_chunk$set(echo = FALSE, message=FALSE)
data <- eval(params$data)
configuration <- eval(params$configuration)
```
Have a great evening.
regards
Witek
On 9 July 2018 at 21:32, Duncan Murdoch <murdoch.duncan using gmail.com> wrote:
> On 09/07/2018 3:24 PM, Witold E Wolski wrote:
>>
>> Dear Yihui,
>>
>> Thank you for the valuable questions.
>>
>> sample_analysis is a "tibble" while
>> configuration is an "R6" class.
>> But I also have parametrized reports where I pass R reference classes
>> as arguments.
>>
>> This is the Rmd yaml params part corresponding to the error message.
>>
>> params:
>> configuration: !r get(data(skylineconfig))
>> data: !r get(data(sample_analysis))
>>
>> Might the R6 class which I pass to configuration the source of the
>> problem here? I have heard somewhere that R6 uses environments to
>> implemented some features.
>>
>>
>>
>> There is also a further problem I am encountering reproducible when
>> running devtools::install() or R CMD INSTALL
>>
>> ** installing vignettes
>> 'tr_srm_summary.Rmd' using 'UTF-8'
>> Warning in data(skylineconfig) : data set 'skylineconfig' not found
>> Error in get(data(skylineconfig)) : object 'skylineconfig' not found
>
>
> You likely need to specify the package name, e.g.
>
> data("skylineconfig", package = "yourpackage")
>
> Also see my suggestion to use quote() to delay evaluation:
>
>
>> params:
>> configuration: !r quote(get(data(sample_analysis)))
>>
>> in the YAML will set configuration to the expression needed to get the
>> environment;
>>
>> eval(params$configuration)
>
>
> Duncan Murdoch
--
Witold Eryk Wolski
More information about the R-devel
mailing list