我们的 R 脚本用于多台计算机上的多个用户,因此每台计算机上安装的软件包存在偏差。为了确保每个脚本都适用于所有用户,我想定义一个函数 pkgLoad,它将首先测试包是否安装在本地,然后再加载带有抑制启动消息的库。在运行 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 时,我在终端中收到以下错误消息
粘贴错误(“包”,包,sep =“:”):找不到对象'ggplot2'> pkgLoad(“ggplot2”)加载所需的包:ggplot2库(x)中的错误:没有名为'x'的包> pkgLoad("ggplot2") library(x) 中的错误:没有名为 'x' 的包</p>
为什么 x 从 ggplot2 变为普通的旧 x?