我对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的建议,先检查一下这个包,然后才行!再次感谢您的帮助!
答案 0 :(得分:7)
除非您从计算机切换到计算机,否则您的库中已经存在此软件包(一旦安装了软件包,它就应该一直存在)。使用installed.packages() [,1]
或library()
查看您图书馆中的所有套餐。如果你在那里看到它,那么使用它:
.First <- function() {
require(customPackage)
cat("\nWelcome to R on ", date(), "\n")
}