Title: | An Alternative Conflict Resolution Strategy |
---|---|
Description: | R's default conflict management system gives the most recently loaded package precedence. This can make it hard to detect conflicts, particularly when they arise because a package update creates ambiguity that did not previously exist. 'conflicted' takes a different approach, making every conflict an error and forcing you to choose which function to use. |
Authors: | Hadley Wickham [aut, cre], Posit Software, PBC [cph, fnd] |
Maintainer: | Hadley Wickham <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.2.0.9000 |
Built: | 2024-12-19 06:24:01 UTC |
Source: | https://github.com/r-lib/conflicted |
conflict_prefer()
allows you to declare "winners" of conflicts.
You can either declare a specific pairing (i.e. dplyr::filter()
beats
base::filter()
), or an overall winner (i.e. dplyr::filter()
beats
all comers). As of conflicted 1.2.0, in most case you should use
conflicts_prefer()
instead as it's both faster and easier to use.
Use conflicted_prefer_all()
to prefer all functions in a package, or
conflicted_prefer_matching()
to prefer functions that match a regular
expression.
conflict_prefer(name, winner, losers = NULL, quiet = FALSE) conflict_prefer_matching(pattern, winner, losers = NULL, quiet = FALSE) conflict_prefer_all(winner, losers = NULL, quiet = FALSE)
conflict_prefer(name, winner, losers = NULL, quiet = FALSE) conflict_prefer_matching(pattern, winner, losers = NULL, quiet = FALSE) conflict_prefer_all(winner, losers = NULL, quiet = FALSE)
name |
Name of function. |
winner |
Name of package that should win the conflict. |
losers |
Optional vector of packages that should lose the conflict.
If omitted, |
quiet |
If |
pattern |
Regular expression used to select objects from the |
# Prefer over all other packages conflict_prefer("filter", "dplyr") # Prefer over specified package or packages conflict_prefer("filter", "dplyr", "base") conflict_prefer("filter", "dplyr", c("base", "filtration")) # Prefer many functions that match a pattern ## Not run: # Prefer col_* from vroom conflict_prefer_matching("^col_", "vroom") ## End(Not run) # Or all functions from a package: ## Not run: # Prefer all tidylog functions over dtplyr functions conflict_prefer_all("tidylog", "dtplyr") ## End(Not run)
# Prefer over all other packages conflict_prefer("filter", "dplyr") # Prefer over specified package or packages conflict_prefer("filter", "dplyr", "base") conflict_prefer("filter", "dplyr", c("base", "filtration")) # Prefer many functions that match a pattern ## Not run: # Prefer col_* from vroom conflict_prefer_matching("^col_", "vroom") ## End(Not run) # Or all functions from a package: ## Not run: # Prefer all tidylog functions over dtplyr functions conflict_prefer_all("tidylog", "dtplyr") ## End(Not run)
conflict_scout()
is the workhorse behind the conflicted package. You can
call it directly yourself if you want to see all conflicts before hitting
them in practice.
conflict_scout(pkgs = NULL)
conflict_scout(pkgs = NULL)
pkgs |
Set of packages for which to report conflicts. If |
For a reexported function, this function will report the package where the
function is defined. If this package is not attached, it will report
the first such package on the search path or in the pkgs
argument.
A named list of character vectors. The names are functions and the values are the packages where they appear. Disambiguated functions are removed from that list.
A user friendly print method displays the result as bulleted list.
conflict_scout()
conflict_scout()
conflicts_prefer()
allows you to declare "winners" of conflicts,
declaring one or many winners at once.
See conflict_prefer()
for more precise control.
conflicts_prefer(..., .quiet = FALSE)
conflicts_prefer(..., .quiet = FALSE)
... |
Functions to prefer in form |
.quiet |
If |
I recommend placing a single call to conflicts_prefer()
at the top of
your script, immediately after loading all needed packages with calls to
library()
.
conflicts_prefer( dplyr::filter(), dplyr::lag(), ) # or conflicts_prefer( dplyr::filter, dplyr::lag, )
conflicts_prefer( dplyr::filter(), dplyr::lag(), ) # or conflicts_prefer( dplyr::filter, dplyr::lag, )