【发布时间】:2021-12-03 19:14:48
【问题描述】:
我有类似下面的代码,动态生成并存储在一个变量中:
---
title: "test"
author: "me"
date: "3 June 2019"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r, comment=""}
for (i in 1 : 3) {
cat('\n')
print(summary(iris[i*50 : 50, "Sepal.Length"] ))
}
```
假设它存储在一个名为rmkdown_code的变量中
现在,我需要能够执行此变量中的代码并将其呈现为 html 或 pdf。我知道results = asis 选项,并且我尝试了它的不同变体。但是,我仍然无法让上面的代码在 html 中呈现。 html 页面出现在 rstudio 中,它显示了 rmkdown_code 变量的内容。它只是没有执行它。
我需要将rmkdown_code 的内容呈现为好像来自平面文件一样。
我尝试了以下方法,但都没有奏效。有些更好地格式化了文本,但没有绘制图表。我想避免将rmkdown_code 变量的内容写入平面文件。
```{r,echo=FALSE,eval=TRUE}
knitr::knit_expand(text=rmkdown_code)
#eval(parse(text = rmkdown_code))
#eval(c(paste0("- `", rmkdown_code, "`"), sep = "\n"))
#eval(knitr::asis_output(rmkdown_code))
#res <- knitr::knit_expand(text=rmkdown_code);knitr::knit(text=res, quiet=F)
# knitr::inline_expr("2+2")
```
dput(rmarkdown)的输出:
## "---\ntitle: \"test\"\nauthor: \"me\"\ndate: \"3 June 2019\"\noutput: html_document\n---\n\n```{r setup, include=FALSE}\nknitr::opts_chunk$set(echo = TRUE)\n```\n\n```{r, comment=\"\"}\nfor (i in 1 : 3) { \n cat('\\n') \n print(summary(iris[i*50 : 50, \"Sepal.Length\"] ))\n}\n```\n"
【问题讨论】:
-
您能否提供以下输出:
dput(rmarkdown_code)?不清楚代码是如何存储在变量中的。 -
@Matt 我已经用详细信息更新了原始帖子。还有什么我可以提供的吗?
-
变量是
expression还是character代码字符串? 编辑:刚刚看到你的更新,似乎是后者。 -
@Greg 你有什么建议吗?
-
恐怕不会,因为我在这个特定领域的背景纯粹是学术背景,缺乏经验。事实上,我很想看到任何可能出现的答案。
标签: r r-markdown knitr rscript