From wewol@ki @ending from gm@il@com  Mon Jul  9 22:11:32 2018
From: wewol@ki @ending from gm@il@com (Witold E Wolski)
Date: Mon, 9 Jul 2018 22:11:32 +0200
Subject: [Rd] Parametrized Vignettest in R packages
In-Reply-To: <95032c71-f99c-23d1-64a2-1651efa15cb0@gmail.com>
References: <CAAjnpdhaeX+=RXCmq3g7jwYQZanfvps1q5i5znmynAGqxb1MPw@mail.gmail.com>
 <129b8986-700f-20bc-fefd-b813df73d06c@gmail.com>
 <CAAjnpdikxuy=KW1OVQEsqkQRwX8VLfedqwxO9mWzZ=cnijx-ZA@mail.gmail.com>
 <cafaec59-174f-9259-4d5c-f963299cdf23@gmail.com>
 <CAAjnpdhkSa2_-4yCMvM5pNPjdLem-D4MwM=UmNJrjTGeV8AQfQ@mail.gmail.com>
 <6ac69071-c1b9-a7df-b33c-3c9ab1a5c973@gmail.com>
 <CANROs4ffNzoB5ZCDpVjkz6RjboyYuDGb+BCP5Z2NtKywmXuRTQ@mail.gmail.com>
 <CAAjnpdjWuQGYPBEstqHQn0wz-9d+8fyEH8oaArA+EDZ-u-WeGQ@mail.gmail.com>
 <95032c71-f99c-23d1-64a2-1651efa15cb0@gmail.com>
Message-ID: <CAAjnpdhgaDipXmcydysPmnM9+VCGCMVBc0NPm2rdUfVZX=UUgg@mail.gmail.com>

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 at 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 at 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



[Rd] Parametrized Vignettest in R packages
Witold E Wolski