如何根据多极列的值动态调整文本并设置为 R markdown 输出 pdf 中的参数

How do I dynamically adjust for text based on values of multipole columns and set as parameters in R markdown output pdf

记下 YAML。我有标题和作者参考设置参数

---
title: "`r params$ID_NUM`"
classoption: landscape 
author: "`r params$first` `r params$last`"
date: "8/11/2021"
output:
  pdf_document: 
    latex_engine: xelatex
    html_document: default
 params:
  ID_NUM: 1
  first: MICHAEL
  last: DOUGLAS
---

下面的脚本能够输出 pdf 并向我提供 ID 号作为标题。它不起作用的地方是它无法为我提供具有相应名称和 id 值的“作者”部分。我是否执行嵌套 for 循环?

for (i in unique(df$id)) {

rmarkdown::render("Document.Rmd", 
                params = list(id_NUM = i),
                output_file=paste0(i, ".pdf"))
}

如果数据集看起来像这样

id   first      last 
 1   Michael    Douglas
 2   Sean       Penn
 3   Kevin      Bacon

我想要第一个pdf显示

ID1
Michael Douglas

第二个显示

ID2 
Sean  Penn  

最后一个。

ID3
Kevin Bacon

我可以获取 ID 部分,但无法获取名称。

更新::

purrr::walk(df,function(x){
 i<-df$id
 p<-df$first
 z<-df$last
 rmarkdown::render(
    "Document.Rmd",
    output_file=paste0(i, ".pdf"),
    params = list(id=i,first=p,last=z)
  )
 })

尝试使用此脚本但效果不佳。

我相信以下会奏效。

for (i in unique(df$id)) {
first <- df$first[df$id == i]
last <- df$last[df$id == i]

rmarkdown::render("Document.Rmd", 
                params = list(id_NUM = i, first = first, last = last),
                output_file=paste0(i, ".pdf"))
}

firstlastparams 值不存在。通过创建它们,您应该能够获得它们的值。