R 如何使包仅在当前词法范围内可见?

R 如何使包仅在当前词法范围内可见?,r,scope,R,Scope,如下面的代码段所示,在函数中运行require(…)会影响封闭环境: % R --vanilla --quiet > match('package:ggplot2', search()) [1] NA > (function () { require(ggplot2) })() Loading required package: ggplot2 > match('package:ggplot2', search()) [1] 2 有没有办法防止这种情况?那么,有没有一种方法可

如下面的代码段所示,在函数中运行
require(…)
会影响封闭环境:

% R --vanilla --quiet
> match('package:ggplot2', search())
[1] NA
> (function () { require(ggplot2) })()
Loading required package: ggplot2
> match('package:ggplot2', search())
[1] 2

有没有办法防止这种情况?那么,有没有一种方法可以使包仅在当前词法范围内可用,而不影响调用环境中的
search()
的输出?

可以使用双冒号访问函数而不加载?e、 g.:
ggplot2::ggplot()
?根据您的用例,您可以在结束函数后使用
?unloadNamespace
<代码>匹配('package:ggplot2',search());(函数(){on.exit(unloadNamespace(“ggplot2”);require(ggplot2);print(match('package:ggplot2',search())})());match('package:ggplot2',search())是否可以在不加载的情况下使用双冒号访问函数?e、 g.:
ggplot2::ggplot()
?根据您的用例,您可以在结束函数后使用
?unloadNamespace
<代码>匹配('package:ggplot2',search());(函数(){on.exit(unloadNamespace(“ggplot2”);require(ggplot2);print(match('package:ggplot2',search())})());匹配('package:ggplot2',search())