5

很抱歉问了简单的问题。我是 R 初学者。我试图加载一个库运行时,例如

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

结果:

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

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

4

2 回答 2

11

使用character.only=TRUE. 请参阅库的帮助页面,带有?library.

> library(x, character.only=TRUE)
于 2013-10-22T19:26:13.703 回答
0

我建议使用require而不是library.

  • require返回一个逻辑,指示包是否已成功加载,即您可以在类似的结构中使用它

    if (require (x, character.only = TRUE))
        ...
    

    相反,library如果包不可用,默认情况下会因错误而停止(logical.return = TRUE不过,您可以通过 更改此行为)。

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

于 2013-10-22T20:10:10.843 回答