在启动R会话时安装包

时间:2012-05-15 23:12:47

标签: r customization

我对R编程很新。我正在尝试自定义我的R设置,以便在启动R会话时,在开始时安装几个包。我知道我可以在Rprofile.site文件中编写一个.First()函数。但是,在.First()函数中添加我的安装包代码后,包不会安装。

此外,它似乎进入了一个尝试创建包的循环,它在R中的库文件夹中创建了一个锁定文件。这导致我的计算机真正变慢(几乎到了它被冻结的程度),因为它一直试图安装该软件包。

以下是我添加到Rprofile.site文件末尾的代码。

.First <- function() {
  install.packages("customPackage.tar.gz", repos=NULL, type="source")
  cat("\nWelcome to R on ", date(), "\n") 
}

我甚至尝试在文件中单独添加install.packages行(没有.First()函数)无济于事。

customPackage.tar.gz是指我使用我编写的现有代码构建的包。由于这是一个自定义包,因此repos为NULL。如果我没有在我的.First()函数中包含这一行,只是在启动R会话后运行该命令,则该软件包在R / R-2.15.0 / library文件夹中安装得很好。

我需要在R会话开始时安装几个自定义程序包,这就是为什么在Rprofile.site文件中添加所有这些代码安装行很重要的原因。有关如何做到这一点的任何想法?我在网上看到的每个地方都定制了Rprofile.site文件,显示了仅使用已存在的库的示例(例如,库(R2HTML)),但没有用于安装新库的示例。谢谢你的帮助!

编辑:谢谢你的帮助!实际上,我确实需要为每个用户在多台机器中安装这些软件包,而不是让它们手动安装软件包一次,我认为它在网站文件中做得很好。我试过Justin的建议,先检查一下这个包,然后才行!再次感谢您的帮助!

1 个答案:

答案 0 :(得分:7)

除非您从计算机切换到计算机,否则您的库中已经存在此软件包(一旦安装了软件包,它就应该一直存在)。使用installed.packages() [,1]library()查看您图书馆中的所有套餐。如果你在那里看到它,那么使用它:

.First <- function() {
  require(customPackage)
  cat("\nWelcome to R on ", date(), "\n") 
}