gpt4 book ai didi

r - 检查是否安装了 R 包然后加载库

转载 作者:行者123 更新时间:2023-12-03 15:18:26 26 4
gpt4 key购买 nike

我们的 R 脚本在多台计算机上的多个用户上使用,因此在每台计算机上安装的软件包存在偏差。为确保每个脚本适用于所有用户,我想定义一个函数 pkgLoad,它将首先测试包是否安装在本地,然后再加载带有抑制启动消息的库。使用 Check for installed packages before running install.packages()作为指导,我尝试过

 pkgLoad <- function(x)
{
if (!require(x,character.only = TRUE))
{
install.packages(x,dep=TRUE, repos='http://star-www.st-andrews.ac.uk/cran/')
if(!require(x,character.only = TRUE)) stop("Package not found")
}
#now load library and suppress warnings
suppressPackageStartupMessages(library(x))
library(x)
}

当我尝试使用 pkgLoad("ggplot2") 加载 ggplot2 时,我在终端中收到以下错误消息
Error in paste("package", package, sep = ":") : 
object 'ggplot2' not found
> pkgLoad("ggplot2")
Loading required package: ggplot2
Error in library(x) : there is no package called ‘x’
> pkgLoad("ggplot2")
Error in library(x) : there is no package called ‘x’

为什么 x 从 ggplot2 变为普通的旧 x?

最佳答案

前几天我写了这个我认为有用的函数......

install_load <- function (package1, ...)  {   

# convert arguments to vector
packages <- c(package1, ...)

# start loop to determine if each package is installed
for(package in packages){

# if package is installed locally, load
if(package %in% rownames(installed.packages()))
do.call('library', list(package))

# if package is not installed locally, download, then load
else {
install.packages(package)
do.call("library", list(package))
}
}
}

关于r - 检查是否安装了 R 包然后加载库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15155814/

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