将特定文件名分配给rmarkdown中的一组不同输出文件
我正在创建一组PDF,每个PDF包含不同的信息。我想根据接收信息的人来命名这些文件。我正在使用将特定文件名分配给rmarkdown中的一组不同输出文件,r,r-markdown,R,R Markdown,我正在创建一组PDF,每个PDF包含不同的信息。我想根据接收信息的人来命名这些文件。我正在使用for循环来运行此操作: for (i in 1:nrow(files)){ rmarkdown::render(input = "files_script.Rmd", output_format = "pdf_document", output_file = paste("Information_", i, "
for
循环来运行此操作:
for (i in 1:nrow(files)){
rmarkdown::render(input = "files_script.Rmd",
output_format = "pdf_document",
output_file = paste("Information_", i, ".pdf", sep=''),
output_dir = "directoryname/")
}
脚本工作正常,但输出文件只是在我的目录中编号。我想根据我的数据框的一列中的名称来命名它们
我的数据如下所示:
Feedback Name Surname
xyz John Smith
abc Karen Jones
for (name in paste0(df$Name, "_", df$Surname)) {
rmarkdown::render(input = "files_script.Rmd",
output_format = "pdf_document",
output_file = paste0("Information_", name, ".pdf"),
output_dir = "directoryname/")
}
我想用姓氏命名这些文件。因此,您的名字在data.frame的两列中(我在这里称之为df)。您可以像这样使用
for
循环:
Feedback Name Surname
xyz John Smith
abc Karen Jones
for (name in paste0(df$Name, "_", df$Surname)) {
rmarkdown::render(input = "files_script.Rmd",
output_format = "pdf_document",
output_file = paste0("Information_", name, ".pdf"),
output_dir = "directoryname/")
}
我用paste0()
替换了paste(sep=“”)
,因为它正在做同样的事情
我不知道你为什么要那样做。files\u script.Rmd始终是同一个文件。因此,渲染一次,然后更改名称会更快
更新
既然您说过要将i
保留为for循环变量,下面是您可以做到的方法:
names <- paste0(df$Name, "_", df$Surname)
for (i in seq_along(names)) {
rmarkdown::render(input = "files_script.Rmd",
output_format = "pdf_document",
output_file = paste0("Information_", names[i], ".pdf"),
output_dir = "directoryname/")
}
names所以你的名字在data.frame中有两列(我在这里称之为df)。您可以像这样使用for
循环:
Feedback Name Surname
xyz John Smith
abc Karen Jones
for (name in paste0(df$Name, "_", df$Surname)) {
rmarkdown::render(input = "files_script.Rmd",
output_format = "pdf_document",
output_file = paste0("Information_", name, ".pdf"),
output_dir = "directoryname/")
}
我用paste0()
替换了paste(sep=“”)
,因为它正在做同样的事情
我不知道你为什么要那样做。files\u script.Rmd始终是同一个文件。因此,渲染一次,然后更改名称会更快
更新
既然您说过要将i
保留为for循环变量,下面是您可以做到的方法:
names <- paste0(df$Name, "_", df$Surname)
for (i in seq_along(names)) {
rmarkdown::render(input = "files_script.Rmd",
output_format = "pdf_document",
output_file = paste0("Information_", names[i], ".pdf"),
output_dir = "directoryname/")
}
names你能添加一个小样本看看你的数据框是什么样子吗?@BurlyPotatoMan done!你能给你的数据框添加一个小样本吗?@BurlyPotatoMan done!这确实如我所希望的那样有效-谢谢但是现在所有的内容都从文件中消失了。我认为这与[我]有关。在我的降价文件中,我有:files\u script$feedback,我认为您必须提供一个更完整的示例,说明您正在尝试做什么。我不明白在哪里<代码> FielsScript $$反馈如果答案帮助你解决你的问题,你应该考虑接受它。抱歉我离开了-这确实解决了问题,谢谢你这样做,我希望-谢谢!但是现在所有的内容都从文件中消失了。我认为这与[我]有关。在我的降价文件中,我有:files\u script$feedback,我认为您必须提供一个更完整的示例,说明您正在尝试做什么。我不明白在哪里<代码> FielsScript $$反馈如果答案帮助你解决你的问题,你应该考虑接受它。对不起我离开了-这确实解决了问题,谢谢你。