我经常开发一个函数,首先开发一个适用于特定数据集的脚本,然后通过将其包装在function_name <- function(...) {do_something}
中将脚本转换为函数,并测试函数是否作为函数运行(而不是作为一组脚本)。
在开发脚本时,通常会在全局环境中创建一些对象(例如,一组计算中的中间变量)。这会产生这样的风险:当我将coe作为函数进行测试时,我认为函数运行良好,但实际上它只是这样做,因为它访问仅存在于全局环境中的对象。如果没有它们出现在全局环境中,该功能将失败。
因此,我经常重新启动R会话并在清新环境中测试该功能。然而,当我需要经常这样做时,这会变得烦人。
我的问题:有没有办法在限制其访问全球环境的同时运行功能?例如,也许我可以创建一个新环境,为其分配函数,将它需要的数据作为输入分配给该环境,然后运行限制在这个有限环境中的函数?我希望有一种有效的方法来测试一个函数 - 虽然它仍处于完全开发阶段 - 确保它无法访问碰巧存在于全局环境中的对象。
有什么想法吗?