gpt4 book ai didi

r - 在 R 中加载包字符串列表的优雅方式

转载 作者:行者123 更新时间:2023-12-02 00:50:52 24 4
gpt4 key购买 nike

您好,我编写了以下代码:

################# Loadin Require Libraries #################
required.packages <- c('caret','readxl')
for (pkg in required.packages){
if(!require(pkg, character.only = T)){
install.packages(pkg,
character.only = T,
dependencies = T)
library(pkg, character.only = T)
}else{
library(pkg, character.only = T)
}

代码应该在对等计算机上运行,​​所以为了处理可能丢失的库我想我迭代了一个字符串列表,检查是否安装了包如果是 -> 如果没有则加载 -> 安装和然后加载。但是,当包不可用时,R 仍会发出警告消息:警告信息:

In library(package, lib.loc = lib.loc, character.only = TRUE,logical.return = TRUE, : es gibt kein Paket namens ‘readxl’

我的问题:是否有更好的方法来检查/安装 R 中的一堆库?我应该关心这个警告吗?如果它不重要,是否有办法阻止打印此警告?

编辑:最终解决方案 感谢@akrun 提供的正确答案:

################# Loadin Require Libraries #################
lib <- .libPaths()[1]
required.packages <- c('caret','readxl')
i1 <- !(required.packages %in% row.names(installed.packages()))
if(any(i1)) {
install.packages(required.packages[i1], dependencies = TRUE, lib = lib)
}
lapply(required.packages, require, character.only = TRUE)

2021 年更新 - 吃 bean

我发现 pacman - 包对于这个目的确实很有帮助,尤其是 p_load function .它检查包是否已安装,否则会尝试安装丢失的包。

This function is a wrapper for library and require. It checks to seeif a package is installed, if not it attempts to install the packagefrom CRAN and/or any other repository in the pacman repository list.

所以现在我使用以下几行开始我所有需要“可移植”的脚本:

require(pacman)  
# Load / Install Required Packages
p_load(dplyr, tidyr, gridExtra, psych)

在这种情况下加载/安装dplyr, tidyr, gridExtra & psych

在这个包里也很好(如果你想清理环境)p_unload

# Unload All packages
p_unload()

最佳答案

这里有一个选项

Pkgs <- c('caret','readxl')
lib <- .libPaths()[1]

i1 <- !(Pkgs %in% row.names(installed.packages()))
if(any(i1)) {
install.packages(Pkgs[i1], dependencies = TRUE, lib = lib)
}

关于r - 在 R 中加载包字符串列表的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57760809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com