我想做的事情很简单:
required_pkgs <- c("A", "B", "C")
for (pkg in required_pkgs) {
library(pkg)
}
在运行时,R解释器尝试查找(3次)名为&#34; pkg&#34;的程序包。 (当然,它在第一次尝试时就失败了),当我希望它是&#34; A&#34;,&#34; B&#34;,&#34; C&#34;。
当然,我对语言的无知使我错过了重点,但为什么它表现得那样? R希望我写下面的代码:
library(A)
library(B)
library(C)
我确实需要迭代每个包加载来处理丢失的包并回退到安装它或选择替代方案。
基本上我抱怨因为无法迭代包名称数组以及每次使用library
参数(for
)调用pkg
导致R尝试加载不存在的pkg
库。这可以通过在character.only=TRUE
的调用中添加library
参数来解决。
答案 0 :(得分:3)
您在required_pkgs中保存了A,B和C,然后将代码修改为:library(required_pkgs [pkg])in for循环而不是库(pkg)
答案 1 :(得分:2)
或者,如果您想一次安装三个软件包,可以使用以下代码: install.packages(c(“A”,“B”,“C”)), 如果它不能正常地解决你的问题。