除了一个函数之外加载一个包

Hec*_*den 2 r

我想加载除了一个函数之外的整个包。

我看到了解决方法,例如如何从包中仅加载特定函数 ,但这并不能满足我的全部需求。

具体问题是使用加载 MASS 和 tidyverse 包中的 select() 函数,但我想要一个更通用的解决方案。

谢谢。

Rom*_*man 7

有三种很好的方法可以做到这一点,但难度不断增加:

1.conflicted

它会检查名称冲突,并会阻止您使用屏蔽或屏蔽函数,如果这样做,则会抛出错误。但您可以声明会话范围的首选项,例如:

conflict_prefer("filter", "dplyr")
#> [conflicted] Will prefer dplyr::filter over any other package
Run Code Online (Sandbox Code Playgroud)

Github 上有冲突

2.import

它允许您从包中显式导入特定函数(如果您愿意,还可以给它们一个自定义名称)

import::from(ggplot2, g = ggplot, aes, geom_point)
g(iris, aes(Petal.Width, Petal.Length)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

在 Github 上导入

3.modules

它为您提供了一种类似 Python 的方式来导入模块(编写为 R 源文件)和库,以及一种更具凝聚力的方式。好的(但先进的)事情是模块,如果它们有子组,可以部分加载,例如str = import('tools/strings')。然而,这不适用于包,因为它们是作为整体编写的。模块在编码指南方面有一些优势,但会迫使您编写:

dplyr = import_package('dplyr')
cars %>% dplyr$filter(speed > 15)
Run Code Online (Sandbox Code Playgroud)

Github 上的模块