Rmarkdown - 将 r 表达式注入内联 Markdown 代码

问题描述 投票:0回答:1

是否可以将 R 表达式从函数注入内联 Markdown 代码中? 假设我们有一个这样的 Rmarkdown 文档:

# doc.Rmd
...
This is my random number `r sample(1:10, 1)`.

可以以某种方式转变成这样吗?:

    ```
    insert_number <- function() {
      `r sample(1:10, 1)`   # the code is invalid, only illustration
    }
    ```

   This is my random number `r insert_number()`

我的目标是使用函数动态生成 r 内联块,并且当渲染文档时,这些块会像通常的块一样被正确解释。我不想插入随机数,我想按原样插入表达式

r sample(1:10, 1)

r r-markdown
1个回答
0
投票

我认为你想做的事情是可能的。例如:

---
title: "Untitled"
date: "2023-11-23"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r}
makeFn <- function(body) {
  paste("insert_number <- function() {", body, "}")
}
```

This will make `insert_number()` generate a normal:
```{r code = makeFn("rnorm(1)"), echo = FALSE}
```

Here's the number: `r insert_number()`.

This will make it return pi:

```{r code = makeFn("pi"), echo = FALSE}
```

Here's the number:  `r insert_number()`.
© www.soinside.com 2019 - 2024. All rights reserved.