pracma包的Norm函数覆盖distr包的Norm类,如何同时使用二者?
解决pracma和distr包的Norm命名冲突问题
在R中同时使用pracma包的Norm函数和distr包的Norm类时,避免命名冲突的方法主要有以下几种:
直接指定包名调用:这是最直接省心的方式,不用纠结加载顺序,通过双冒号
::明确指定对象所属的包即可:- 调用pracma包的Norm函数:
pracma::Norm(your_input_vector) - 调用distr包的Norm类:
distr::Norm(mean = 0, sd = 1)
- 调用pracma包的Norm函数:
加载包时排除冲突对象:如果其中一个包的
Norm使用频率较低,可以在加载包时用exclude参数将冲突对象排除在全局环境之外:- 若常用pracma的Norm函数,加载distr时排除Norm:
library(distr, exclude = "Norm"),之后直接用Norm()调用pracma的函数,distr的Norm类则通过distr::Norm()调用 - 若常用distr的Norm类,加载pracma时排除Norm:
library(pracma, exclude = "Norm"),之后直接用Norm()调用distr的类,pracma的Norm函数通过pracma::Norm()调用
- 若常用pracma的Norm函数,加载distr时排除Norm:
按需加载卸载包:如果两个包的
Norm都不常用,可以只加载当前需要的包,用完后用detach("package:distr")或detach("package:pracma")卸载,需要另一个时再重新加载。不过这种方法切换繁琐,一般不推荐。
内容的提问来源于stack exchange,提问作者Cyclotron
相关产品推荐
相关产品推荐

