我們的R腳本用於多臺計算機上的多個用戶,因此每臺計算機上都安裝了軟件包。爲了確保每個腳本適用於所有用戶,我想定義一個函數pkgLoad,它將首先測試包是否在本地安裝,然後加載具有禁止啓動消息的庫。使用Check for installed packages before running install.packages()爲指導,我想檢查是否安裝了R軟件包,然後加載庫
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’
任何以下錯誤消息爲何從GGPLOT2 X變化到普通的老x?
在我看來就像最後兩調用'library'是多餘的 - 在這一點上,如果它存在於包裝應該已經被加載。 – 2013-03-01 11:04:56