Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Rmarkdown中参数化内联代码、文本和R代码块_R_Rstudio_R Markdown - Fatal编程技术网

如何在Rmarkdown中参数化内联代码、文本和R代码块

如何在Rmarkdown中参数化内联代码、文本和R代码块,r,rstudio,r-markdown,R,Rstudio,R Markdown,在我的Rmarkdown报告中,大多数部分都有相同的文本、内联代码和R代码块。是否可以将它们参数化?例如下图,是否可以使用类似For循环的方法来生成它们,而不是重复类似的代码3次 IMHO,实现这一点的最简单方法是使用results='asis',下面的cat()是一个最小的RMarkdown文件 --- title: "Minimal example" --- ```{R results = "asis"} for (i in 1:3) { x <- runif(10) cat("

在我的Rmarkdown报告中,大多数部分都有相同的文本、内联代码和R代码块。是否可以将它们参数化?例如下图,是否可以使用类似For循环的方法来生成它们,而不是重复类似的代码3次


IMHO,实现这一点的最简单方法是使用
results='asis'
,下面的
cat()
是一个最小的RMarkdown文件

---
title: "Minimal example"
---

```{R results = "asis"}
for (i in 1:3) {
 x <- runif(10)
 cat("# section", floor(i), "\n")
 plot(x)
 # line break
 cat("\n\n")
}
```
---
标题:“最低限度的例子”
---
```{R results=“asis”}
(我在1:3中){
x在主RMD文件中

library(tidyverse)

dat <- tibble(
  id = 1:3,
  fruit = c("apple", "orange", "banana"),
  sold = c(10, 20, 30)
)

谢谢你的解决方案。但在我的例子中,每个部分都有很多信息,格式也很复杂。这将使cat(…)变得非常复杂。在这种情况下使用“child”文档可能会有帮助。有关更多信息,请参阅
res <- lapply(dat$id, function(x) {
  knitr::knit_child(
    'template.Rmd', envir = environment(), quiet = TRUE
  )
})
cat(unlist(res), sep = '\n')
current_dat <- filter(dat, id == x)
# Section: `r  current_dat$fruit`
current_dat %>% 
  ggplot(aes(x = fruit, y = sold)) + geom_col()