【发布时间】:2020-06-15 17:24:56
【问题描述】:
在下面的示例中,我从一大段代码生成包的参考书目。但是,一个包的 BibTeX 条目中存在错误。我可以手动修改此条目,但我的更改将在下次编织文件时被覆盖。
所以我想知道是否可以从R Markdown中的一个chunk修改.bib文件中的行,这样每次编织文件时都会自动更正条目。
例子:
---
title: "Cite R packages"
author: ''
date: ""
output:
pdf_document
bibliography: mistakeref.bib
---
```{r echo=FALSE}
# If not installed yet:
# install.packages("cem")
```
This is a citation of a paper: @R-cem
```{r cite-packages, echo=FALSE}
knitr::write_bib("cem", file = "mistakeref.bib", tweak = TRUE)
```
mistakeref.bib 将由代码创建,但在包cem 的 Bibtex 条目中存在错误。我想更换:
author = {{Iacus} and Stefano M. and {King} and {Gary} and {Porro} and {Giuseppe}},
作者:
author = {Stefano M. Iacus and Gary King and Giuseppe Porro},
基本上,这将是 R 的一种自动“搜索和替换”。我在理解 this answer 时遇到了一些麻烦,我不确定它是否符合我想做的事情。
【问题讨论】:
-
为什么不首先编辑 .bib 文件?无论如何尝试
readLines和gsub。 -
我不明白你的问题,由于
gsub中的大括号,我对invalid regular expression有一个错误。你能告诉我怎么做吗?我没有把它放在我的帖子中,但我的 .bib 文件中有几个包,只有一个有错误 -
其实你可以用
grep替换整行。
标签: r r-markdown