如何根据多极列的值动态调整文本并设置为 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"))
}
first
和 last
的 params
值不存在。通过创建它们,您应该能够获得它们的值。
记下 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"))
}
first
和 last
的 params
值不存在。通过创建它们,您应该能够获得它们的值。