如何在Rmarkdown中使用YAML参数的顺序组合

时间:2018-02-19 06:34:04

标签: r knitr r-markdown

如何使用在Rmarkdown中使用YAML分配的一系列参数?我正在尝试编写一个csv文件,但我只能使用一个参数。

例如。我有:

title: "My Title"
params:
  month: "March"
  person: "CEO"
  extention: ".csv"

我想将所有指定的参数添加为单个连续词:

write.table(d, file=params$month params$person params$extention, quote = F, fileEncoding = "UTF-8", sep = ";", row.names=FALSE)

然而,它不可能这样,它只读取一个参数,如果这样。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您的文件属性必须是一个字符串,因此您可以使用paste将它们作为一个字符串放在一起。 (paste0与粘贴相同,但默认情况下不会在变量之间分隔)

write.table(d, file = paste0(params$month,params$person,params$extention),
             quote = F, fileEncoding = "UTF-8", sep = ";", row.names = FALSE)

将提供" MarchCEO.csv"

在你的情况下,你只有一个月的文件名,其他变量因为空间而没有被考虑在内,所以它认为这是其他一些属性..

如果您希望该行更具可读性,您可以首先定义名称:

myfilename <- paste0(params$month,params$person,params$extention)

write.table(d, file = myfilename, quote = F, fileEncoding = "UTF-8",
            sep = ";", row.names = FALSE)