Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将特定文件名分配给rmarkdown中的一组不同输出文件_R_R Markdown - Fatal编程技术网

将特定文件名分配给rmarkdown中的一组不同输出文件

将特定文件名分配给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, "

我正在创建一组PDF,每个PDF包含不同的信息。我想根据接收信息的人来命名这些文件。我正在使用
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 $$反馈如果答案帮助你解决你的问题,你应该考虑接受它。对不起我离开了-这确实解决了问题,谢谢你。