在开发R包时,最好避免在完整包命名空间中导入其他包,因为这会给用户带来不必要的麻烦,例如导入其他包的函数可能会与用户安装的同名函数发生冲突。
为了避免这种情况,可以使用以下做法:
::
或 :::
方式限定使用外部包中的函数。my_function <- function(x) {
y <- some_package::some_function(x)
...
}
在文件NAMESPACE中指定使用的外部包和函数。
importFrom(some_package, some_function)
这样,包的用户就可以在不与同名函数发生冲突的情况下使用你的包。
library(my_package)
my_package::my_function(x)