Наши сценарии R используются для нескольких пользователей на нескольких компьютерах и, следовательно, существуют отклонения, в которых пакеты устанавливаются на каждом компьютере. Чтобы каждый script работал для всех пользователей, я хотел бы определить функцию 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)
}
Когда я пытаюсь загрузить ggplot2 с помощью pkgLoad ( "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?