所以我的目标是创建一个首先尝试加载包的函数。如果无法加载,它将尝试安装它然后加载它。我在某处看到了这种类型的代码,并在我的几个函数中使用了它,我总是在函数中指定必要的包。我认为这将是一个很好的工具来概括为一个函数。有太多的软件包,我经常忘记我已经安装了什么。
问题在于,在 lib 和 lib2 中,它传递的是对象 ( "package"
) 的名称,而不是对象 () 内容的名称"SpatialPack"
。我尝试了一些方法,例如在对象 ( "package[1]"
) 中指定位置,但没有任何效果。
让它调用对象的内容而不是对象的名称的任何帮助都会很棒。谢谢!
get.package<-function(package){
lib<-require(package)
if(lib==TRUE)
{
print(paste(c(package,"Package successfully loaded")))
}
if(lib==FALSE)
{
print(paste(c("Attempting to install and load",package,"Package")))
install.packages(package)
lib2<-require(package)
if (lib2==TRUE)
{
print(paste(c(package,"Package successfully installed and loaded")))
}
else print(paste(c(package,"Package unable to be installed")))
}
}
get.package("SpatialPack")