R语言 如何在夸托中自动化节头和代码块

mbzjlibv  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(126)

我想自动标题和代码块在夸托。我有一个向量x<-c("title1","title2", "title3")和一个函数figure(x)。我想做的是使用夸托创建一个文档,模式为##title1,代码块为figure(“title 1”),##title 2,等等。而不必实际写出##r x[1]{r} figure(x[1])提前感谢!

nzk0hqpo

nzk0hqpo1#

按照以下步骤操作。
创建夸托文件。给予起个名字。例如quarto_example.qmd
运行以下代码

f <- function(x, my_file){
  cat("## ", x, "\n```{r}\n",
      "figure(", x, ")\n```\n\n", sep="",
      append = TRUE, file = my_file)
} 
vec <- c("title1", "title2", "title3")
invisible(sapply(vec, f, my_file = "quarto_example.qmd"))

如果函数也改变了,你必须把它作为参数传递:

f <- function(x, fun, my_file){
  cat("## ", x, "\n```{r}\n",deparse(substitute(fun)),
      "(", x, ")\n```\n\n", sep="",
      append = TRUE, file = my_file)
} 

invisible(sapply(paste0("title", 1:5), f, figure, "quarto_example.qmd"))

请注意,代码是容易出错的。即运行它更多的时间将不断写入文件的代码。没有检查来确定文件是否已经有要编写的代码。您可以使用grep/grepl甚至手动进行检查

相关问题