从 R 脚本渲染时如何将值传递给 Rmd 文件?
How to pass a value to Rmd file while rendering from a R script?
我有一个 Rmd 文件,我通过从数据库服务器检索数据来生成一些 ggplot。我试图通过循环调用此 Rmd 文件并生成单独的 pdf 文件。为此,我需要在循环的每次迭代中向 Rmd 文件传递一个唯一值,需要此值才能从 Rmd 文件中的 DB 访问数据。也想用我想传递的值来命名生成的pdf文件。
我在 R 脚本中尝试过类似于此资源的操作:
https://bookdown.org/yihui/rmarkdown-cookbook/rmarkdown-render.html
for (state in state.name) {
rmarkdown::render(
'input.Rmd', output_file = paste0(state, '.pdf')
)
}
但这不能正常工作。
命令 render
接受参数 output_file
和 params
。输出文件是要保存到的文件,参数是您传递给 Markdown 代码的内容。
library(rmarkdown)
render("File.rmd",
output_file="file.pdf",
params=list(text="print this"))
然后在您的 RMarkdown 文件中,您可以访问通过 params$parametername
传递的参数。
---
params:
text: "what"
---
print(params$text)
对于您的代码,您将分别在 R 代码和 Rmarkdown 代码中执行如下操作:
for (state in state.name) {
rmarkdown::render(
'input.Rmd', output_file = paste0(state, '.pdf'), params=list(state=state)
)
}
---
params:
state: "what"
---
params$state
我有一个 Rmd 文件,我通过从数据库服务器检索数据来生成一些 ggplot。我试图通过循环调用此 Rmd 文件并生成单独的 pdf 文件。为此,我需要在循环的每次迭代中向 Rmd 文件传递一个唯一值,需要此值才能从 Rmd 文件中的 DB 访问数据。也想用我想传递的值来命名生成的pdf文件。
我在 R 脚本中尝试过类似于此资源的操作: https://bookdown.org/yihui/rmarkdown-cookbook/rmarkdown-render.html
for (state in state.name) {
rmarkdown::render(
'input.Rmd', output_file = paste0(state, '.pdf')
)
}
但这不能正常工作。
命令 render
接受参数 output_file
和 params
。输出文件是要保存到的文件,参数是您传递给 Markdown 代码的内容。
library(rmarkdown)
render("File.rmd",
output_file="file.pdf",
params=list(text="print this"))
然后在您的 RMarkdown 文件中,您可以访问通过 params$parametername
传递的参数。
---
params:
text: "what"
---
print(params$text)
对于您的代码,您将分别在 R 代码和 Rmarkdown 代码中执行如下操作:
for (state in state.name) {
rmarkdown::render(
'input.Rmd', output_file = paste0(state, '.pdf'), params=list(state=state)
)
}
---
params:
state: "what"
---
params$state