r - 除了一个函数加载一个包
问题描述
除了一个功能外,我想加载整个包。
我看到了诸如如何仅从包中加载特定功能之类的解决方法, 但这并不能满足我的全部需求。
具体问题是在 MASS 和 tidyverse 包中使用加载 select() 函数,但我想要一个更通用的解决方案。
谢谢你。
解决方案
有三种不错的方法可以做到这一点,难度增加:
1.conflicted
它会检查名称冲突,并会通过抛出错误来阻止您使用掩码或掩码函数。但是您可以声明一个会话范围的首选项,例如:
conflict_prefer("filter", "dplyr")
#> [conflicted] Will prefer dplyr::filter over any other package
2.import
它允许您从包中显式导入特定功能(如果您愿意,可以给它们一个自定义名称)
import::from(ggplot2, g = ggplot, aes, geom_point)
g(iris, aes(Petal.Width, Petal.Length)) + geom_point()
3.modules
它为您提供了一种 Python 式的方式来导入模块(编写为 R 源文件)和库,以及一种更具凝聚力的方式。好的(但先进的)事情是模块,如果它们有子组,可以部分加载,例如str = import('tools/strings')
. 但是,这不适用于包,因为它们是作为整体编写的。modules 在编码指南方面有一些优势,但会迫使您编写:
dplyr = import_package('dplyr')
cars %>% dplyr$filter(speed > 15)
推荐阅读
- time-series - 使用 Kibanan Timelion 绘制原始时间序列
- prolog - 在 Prolog 中将列表的每个实例替换为另一个 ONE
- php - 为什么从 url 获取时 curl 超时?
- javascript - 将 JavaScript 对象数据传递到 Bootstrap 模式
- python - 迭代时间序列数据的间隔
- jenkins - 通过 Jenkins API 写入 key/value 数据
- ios - 如果 Firebase 值为 nil,我如何定义辅助值
- javascript - 为什么 Google Webfontloader 不起作用?
- javascript - 按键将对象分组为二维数组
- php - 表单提交未填充 $_POST 数组