如何动态加载库?

时间:2013-10-22 19:22:36

标签: r

很抱歉提问。我是R初学者。我试图加载库运行时, 例如

x<-"snow"; library(eval(x))

结果:

Error in library(eval(x)) : 'package' must be of length 1.

如果有人给我一些解决方案,我将不胜感激。

2 个答案:

答案 0 :(得分:9)

使用character.only=TRUE。请参阅图书馆的帮助页面,其中包含?library

> library(x, character.only=TRUE)

答案 1 :(得分:0)

我建议使用require代替library

  • require返回一个逻辑,指示包是否已成功加载,即您可以在

    等结构中使用它
    if (require (x, character.only = TRUE))
        ...
    

    相反,如果包不可用,library将默认停止并显示错误(您可以通过logical.return = TRUE更改此行为)。

  • 如果软件包已经加载,并且这部分代码经常执行,速度可能很重要:如果软件包已加载,require几乎比笔记本电脑上的library快20倍已经。如果没有,则会调用library