Package 'conflicted'

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-09-19 04:44:15 UTC
Source: https://github.com/r-lib/conflicted

Help Index


Persistently prefer one function over another

Description

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.

Usage

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)

Arguments

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, winner will beat all comers.

quiet

If TRUE, all output will be suppressed

pattern

Regular expression used to select objects from the winner package.

Examples

# 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)

Find conflicts amongst a set of packages

Description

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.

Usage

conflict_scout(pkgs = NULL)

Arguments

pkgs

Set of packages for which to report conflicts. If NULL, the default, will report conflicts for all loaded packages

Details

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.

Value

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.

Examples

conflict_scout()

Declare many preferences at once

Description

conflicts_prefer() allows you to declare "winners" of conflicts, declaring one or many winners at once.

See conflict_prefer() for more precise control.

Usage

conflicts_prefer(..., .quiet = FALSE)

Arguments

...

Functions to prefer in form pkg::fun or pkg::fun().

.quiet

If TRUE, all output will be suppressed

Best practices

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().

Examples

conflicts_prefer(
  dplyr::filter(),
  dplyr::lag(),
)

# or
conflicts_prefer(
  dplyr::filter,
  dplyr::lag,
)