On 09/07/2018 8:49 AM, Witold E Wolski wrote:
Dear Duncan,

Following your advice (Thank you for it) I did include into the vignettes
params:
   configuration: !r get(data(sample_analysis))
   data: !r get(data(skylineconfig))

And everything seemed (see below) to work fine.
devtools::build_vignettes() builds the vignettes.

Runs with NO error. By this the .Rmd file, html file and corresponding
.R files is being placed into the inst/doc directory.

However, when I did want to check the package by running
devtools::check(build_args="--no-build-vignettes")

The following warning is shown:

Warning: parse error in file
'C:/Users/wolski/AppData/Local/Temp/Rtmp4QanHv/SRMService.Rcheck/SRMService/doc/tr_srm_summary.R':
/Users/wolski/AppData/Local/Temp/Rtmp4QanHv/SRMService.Rcheck/SRMService/doc/tr_srm_summary.R:2:22:
unexpected '<'
1: params <-
2: list(configuration = <

This is how the start of the .R file produced from the vignette looks like.

params <-
list(configuration = <environment>, data = structure(list(protein_Id =
c("CiRT standards",

I am worried that this is the end of this road with parameterized
vignettes then? What do you think?

Interesting. The issue is that the value being assigned to configuration is an environment, and whatever code produces those lines in tr_srm_summary.R isn't deparsing it into something parseable. (This isn't a big surprise: dput and deparse both fail at that.)

I'd guess a solution is not to save sample_analysis as an environment, but maybe you didn't know you were doing that since some other structures are implemented as environments.

Perhaps you could use

configuration: !r as.list(get(data(sample_analysis)))

and then when you need to use it, convert it back to the original type?

Duncan Murdoch

regards
Witek





On 2 July 2018 at 18:21, Duncan Murdoch <murdoch.dun...@gmail.com> wrote:
On 02/07/2018 11:22 AM, Witold E Wolski wrote:

Hello,

Thank you for the questions as well as remaining me of the default
parameters in the yaml session.
Indeed this seems to be the solution.


But how would I assign package data as a default parameter?
So originally I thought to render the markdown with :

<code>
data(sample_analysis)
data(skylineconfig)
x <- rmarkdown::render("report.Rmd", output_format = "html_document",
                        params = list(data = sample_analysis,
                                      configuration =
skylineconfig),envir = new.env())
<code>

I do not think I can write:

params:
    configuration: !r data(sample_analysis)
    data: !r data(skylineconfig)

since data does not return the package just puts them in the env as a
side effect. Is there a different base function to achieve it.


I think you could use

  params:
   configuration: !r get(data(sample_analysis))
   data: !r get(data(skylineconfig))

but if that doesn't work, a longer version is

  params:
   configuration: !r {data(sample_analysis); sample_analysis}
   data: !r {data(skylineconfig); skylineconfig}

Duncan Murdoch




Thank you
Witek




On 2 July 2018 at 16:56, Duncan Murdoch <murdoch.dun...@gmail.com> wrote:

On 02/07/2018 10:30 AM, Witold E Wolski wrote:


Hello,

I have a package which includes some parameterized r-markdown report
which I would also like to build as package vignettes.

Is there a way to run the parameterized vignette creation with the
package build or package check?




Doesn't the usual method work?  You can specify defaults for parameters
in
the YAML header; I'd expect those to be the parameter values that get
used.

You can give instructions to your users on how to rebuild the reports
with
different parameters.

Duncan Murdoch


Thank you










______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to