On 09/07/2018 12:24 PM, Yihui Xie wrote:
So far you haven't provided a reproducible example yet. I wonder what
exactly the object `sample_analysis` is. Sounds like it is an
environment. If that is the case, devtools::build_vignettes() will
tangle (for the meaning of "tangle", see ?tools::buildVignette) your
vignette into an invalid R script. Environments cannot be represented
via dput(), so knitr's purl() (eventually called by the vignette
engine) cannot really create a valid R script when your vignette
contains `params` that uses environment values. Most other types of
values should be fine.
One possibility is to delay evaluation of the parameter. For example
putting
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)
gives you the environment itself.
Duncan Murdoch
Regards,
Yihui
--
https://yihui.name
On Mon, Jul 9, 2018 at 10:37 AM, Duncan Murdoch
<murdoch.dun...@gmail.com> wrote:
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
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel