【问题标题】:load packages in a loop via `library()` [duplicate]通过`library()`循环加载包[重复]
【发布时间】:2019-11-01 03:52:52
【问题描述】:

是否可以循环加载 30 个包,每个包都带有库函数?

pckgs = c("readr", "dplyr")
sapply(pckgs, library)

背景:

在加载之前,我会测试是否安装了软件包。为此,我已经有了c("readr", ..., "dplyr") 形式的包名称,我想知道我是否也可以循环加载包而不是写30 次library()

我尝试了什么:

我简化为一个包:

sapply("readr", library)
sapply("readr", function(lib) library(lib))
sapply("readr", function(lib) library(get(lib)))

剧透:

我想发布这个问题,然后决定检查参数中的“强制字符”并且很幸运。 (问一个问题然后自己回答有点奇怪,但是当我读到这篇文章时,我觉得很有动力:) https://stackoverflow.com/help/self-answer

【问题讨论】:

  • 哦哇 - 没找到,抱歉。将删除。谢谢! [编辑:不能删除 - 批准的重复,...]

标签: r package


【解决方案1】:

可以使用参数character.only

示例:

pckgs = c("readr", "dplyr")
sapply(pckgs, library, character.only = TRUE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    相关资源
    最近更新 更多