[R] Example for Roxygen @eval tag?
Duncan Murdoch
murdoch@dunc@n @end|ng |rom gm@||@com
Mon Apr 22 10:13:45 CEST 2019
On 22/04/2019 2:40 a.m., Boris Steipe wrote:
> I see .. you mean code that extends Roxygen. I was thinking something simple like an .Rmd chunk. But just creating an existing tag doesn't do much either:
>
> #' @eval sprintf("@section Time: %s", Sys.time() )
>
> Renders as...
>
> @eval sprintf("@section Time:
>
> ... in the .Rd - more than before, but not what I though
>
> An actual example would be most enlightening.
If you look in the Roxygen2 code you'll find some, e.g. in R/rd.R, which
displays in ?rd_roclet.
I'd guess the percent sign is messing things up. It's a comment in Rd
files, and perhaps also in roxygen.
Doing the search through the source code also turned up @evalRd and
@evalNamespace, which might be worth exploring.
Duncan Murdoch
> Thanks Jeff,
> Boris
>
>
>
>> On 2019-04-22, at 02:25, Jeff Newmiller <jdnewmil using dcn.davis.ca.us> wrote:
>>
>> What tag are you creating with the eval? Your example wouldn't create valid roxygen code... as I said, it looks rather meta....
>>
>> On April 21, 2019 10:40:27 PM PDT, Boris Steipe <boris.steipe using utoronto.ca> wrote:
>>> Yes, that's where I started - the vignette says:
>>>
>>> ... Run arbtirary R code with @eval.
>>>
>>> ... the @eval tag. It evaluates code and treats the result as if it
>>> was a literal roxygen tags. This makes it possible to eliminate
>>> duplication by writing functions.
>>>
>>> The first thing I noticed was that it does not say anything about
>>> delimiters. By trial and error it seems to consider everything up to
>>> the next @... tag in the header. Things that are not R code create an
>>> error during devtools::document() processing. It seems the output is
>>> captured and processed, i.e. System.time() creates a not-a-string
>>> error, but as.character(System.time()) passes ... but then nothing
>>> appears in the .Rd - and I haven't been able to find a single example
>>> of @eval in use in the wild.
>>>
>>> No joy.
>>>
>>>
>>>
>>>
>>>> On 2019-04-22, at 01:29, Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
>>> wrote:
>>>>
>>>> I have not used it... but did you read the vignette [1]? It sounds
>>> like it is a bit more meta than you think it is...
>>>>
>>>> [1]
>>> https://cran.r-project.org/web/packages/roxygen2/vignettes/rd.html
>>>>
>>>> On April 21, 2019 7:44:17 PM PDT, Boris Steipe
>>> <boris.steipe using utoronto.ca> wrote:
>>>>> Playing with Roxygen features, but can't get @eval to work. E.g. ...
>>>>>
>>>>> #' @eval sprintf("%s", Sys.time())
>>>>>
>>>>> ... does not do what I thought it would (i.e. substitute the tag and
>>>>> the expression with the string). Instead I see nothing in the .RD
>>> file.
>>>>>
>>>>> Any working examples out there?
>>>>> Thanks!
>>>>> Boris
>>>>>
>>>>> ______________________________________________
>>>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>>> PLEASE do read the posting guide
>>>>> http://www.R-project.org/posting-guide.html
>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>
>>>> --
>>>> Sent from my phone. Please excuse my brevity.
>>
>> --
>> Sent from my phone. Please excuse my brevity.
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list