Merges two BibEntry objects comparing only the specified fields to detect
duplicates, thus it is can be made less strict
than using duplicated, unique, etc. Attributes are also merged
and keys are ensured to be unique.
merge and + simply provide different interfaces for merging.
Usage
# S3 method for class 'BibEntry'
e1 + e2
# S3 method for class 'BibEntry'
merge(
x,
y,
fields.to.check = BibOptions()$merge.fields.to.check,
ignore.case = BibOptions()$ignore.case,
...
)Arguments
- e1
BibEntry object
- e2
BibEntry object to be merged with e1
- x
BibEntry object
- y
BibEntry object
- fields.to.check
character vector; which BibLaTeX fields should be checked to determine if an entry is a duplicate? Can include
"bibtype"to check entry type and"key"to check entry keys. Specifying"all"checks all fields usingduplicated.- ignore.case
logical; if
TRUE, case is ignored when determining if fields are duplicates.- ...
ignored
See also
Other operators:
$.BibEntry(),
$<-.BibEntry(),
[.BibEntry(),
[<-.BibEntry(),
[[.BibEntry(),
[[<-.BibEntry(),
c.BibEntry()
Author
McLean, M. W. mathew.w.mclean@gmail.com
Examples
if (requireNamespace("bibtex")) {
file.name <- system.file("Bib", "biblatexExamples.bib", package="RefManageR")
bib <- suppressMessages(ReadBib(file.name))
bib1 <- bib[seq_len(44)]
bib2 <- bib[45:length(bib)]
## The following is FALSE because the parent entry of one entry in bib1
## is in bib2, so the child entry is expanded in the BibEntry object
## returned by `[` to include the fields inherited from the dropped parent
identical(merge(bib1, bib2, 'all'), bib)
toBiblatex(bib1[[1L]])
toBiblatex(bib[[1L]])
## Alternatively, the operator `[[` for BibEntry objects does not expand
## cross references
bib1 <- bib[[seq_len(44)]]
bib2 <- bib[[45:length(bib)]]
identical(merge(bib1, bib2, 'all'), bib)
## Not strict enough
invisible(merge(bib1, bib2, c('title', 'date')))
}
#> Duplicate entries found in second BibEntry object in position(s): 1
## New publications of R.J. Carroll from Google Scholar and Crossref
if (FALSE) { # \dontrun{
if (requireNamespace("bibtex")) {
bib1 <- ReadGS(scholar.id = "CJOHNoQAAAAJ", limit = '10', sort.by.date = TRUE)
bib2 <- ReadCrossRef(query = "rj carroll", limit = 10, sort = "relevance",
min.relevance = 80)
oldopt <- BibOptions(merge.fields.to.check = "title")
rjc.new.pubs <- bib1 + bib2
BibOptions(oldopt)
}
} # }
