12.2.4 Rmarkdown文件中的YAML文件头编写
YAML文件头是指Rmarkdown文件开始的一段代码,示例如下:
YAML(Yet Another Markup Language)代表的是一种标记语言,它主要设计用于表征容易被用户读写的层次化数据。通过调整YAML文件头参数,可以控制Rmarkdown文件的“全文档”参数设置。Rmarkdown文件通过使用YAML文件头控制输出的众多细节。接下来重点介绍两种YAML文件头:文档参数和参考文献。
1.文档参数的设置
Rmarkdown文件的YAML文件头可以包含生成报告的一个或多个参数。如果想要定制报告的不同输出样式,可以修改这些参数的设置。例如,在YAML文件头设置output参数域值,可以实现输出样式的改变。示例代码及参数域值含义如下:
2.参考文献的设置
数据分析报告的最后一般需要添加参考文献,要实现自动化地引用参考文献,包括文献格式调整、按正文顺序排列参考文献等,可以使用Rmarkdown独有的参考文献设置功能。用户只需在正文输入一个标签,就可解决文章内和参考文献列表两部分的文献插入和排版问题,相应的设置方法如下。
(1)导入bib文件
Rmarkdown可以使用多种格式的参考文献库文件,比较常用的有bib或bibtex文件。简单来说,这两种文件将文献信息分解为title、author等字段存储起来,方便文档引用文献时将各个字段按所需格式组合在一起。
通常而言,用户可以从文献检索数据库中导出bib或bibtex格式的文献文件,也可以使用Endnote、Papers、Zotero等文献管理软件管理参考文献,然后再从这些软件中导出bib格式的文献文件。
将导出的bib文件与Rmarkdown文件放在同一工作目录下,在Rmarkdown文件的YAML文件头添加bibliography字段,并注明要引用的文献文件,示例如下:
后续如果要在Rmarkdown的Mardown文本中引用参考文献,可以在引用位置插入如下语句:
上述代码表明,在“@”后添加bib参考文献中的字符串作为标识符,Rmarkdown在执行代码时即可找到该篇文献信息。值得注意的是,不同文献标识符不可重复。
实际使用时可能会出现一种特殊情形,即正文不需要引用某文献,但需要在文末参考文献处列出。要解决这一问题,需要在YAML文件头加入nocite参数,列出只需在文末参考文献中出现的文献标识符,示例如下:
(2)安装插件citr
如果参考文献数量较多,在Rmarkdown的Mardown文本中手动引用参考文献较为费时费力,那么可以通过安装插件citr实现参考文献的自动插入。
首先,在RStudio中安装citr包,代码如下:
然后重启RStudio可以看到,在菜单栏的Addins选项框下可以找到Insert Citations按钮,单击该按钮启动citr插件,即可在正文的所选位置自动插入参考文献。需要指出的是,该插件只能插入已有bib文件中存储的参考文献。为此,在正式使用该插件之前,需要准备bib格式的参考文献文件,并在YAML文件头进行如下设置: