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 This problem isn't happening when running devtools::build_vignettes() The Package install works however if I first build the vignettes with devtools::build_vignettes() and than run R CMD INSTALL I will be sending to you a link to a repository with a reproducible example in a separate e-mail. Kind regards Witek On 9 July 2018 at 18:24, Yihui Xie <x...@yihui.name> 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. > > 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 -- Witold Eryk Wolski ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel