在R的box模块中调用stats包及模块热重载的问题
问题解决方法
一、解决pnorm函数找不到的问题
box 模块的运行环境是隔离的,不会自动继承全局环境加载的包,需要在模块内部显式导入stats包的相关函数:
- 方法1:在
calculate_probability.R模块开头添加导入语句,按需加载pnorm:box::use(stats[pnorm]) calculate_probability <- function(...) { # 直接使用pnorm即可 pnorm(...) } box::export(calculate_probability) - 方法2:如果不想显式导入,也可以在函数内直接通过命名空间调用:
calculate_probability <- function(...) { stats::pnorm(...) } box::export(calculate_probability)
二、修改模块后无需重启R即可让box识别变更
有两种实用方式:
- 手动重载指定模块:修改模块文件并保存后,在控制台执行:
box::reload(TomLeversRBox/calculate_probability) - 开启自动重载功能:在R会话中执行一次以下代码,之后修改模块文件并保存,box会自动重载变更:
box::set_options(autoreload = TRUE)
内容的提问来源于stack exchange,提问作者Tom Lever
相关产品推荐
相关产品推荐

