我对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")
}
Run Code Online (Sandbox Code Playgroud)
我甚至尝试在文件中单独添加install.packages行(没有.First()函数)无济于事.
customPackage.tar.gz是指我使用我编写的现有代码构建的包.由于这是一个自定义包,因此repos为NULL.如果我没有在我的.First()函数中包含这一行,并且只是在启动R会话后运行该命令,则该软件包在R/R-2.15.0/library文件夹中安装得很好.
我需要在R会话开始时安装几个自定义程序包,这就是为什么在Rprofile.site文件中添加所有这些代码安装行很重要的原因.有关如何做到这一点的任何想法?我在网上看到的每个地方都定制了Rprofile.site文件,显示了仅使用已存在的库的示例(例如,库(R2HTML)),但没有用于安装新库的示例.谢谢您的帮助!
编辑:谢谢你的帮助!实际上,我确实需要为每个用户在多台机器上安装这些软件包,而不是让它们手动安装软件包一次,我认为在网站文件中做这件事会很好.我试过Justin的建议,先检查包装,然后才有效!再次感谢您的帮助!
除非您从计算机切换到计算机,否则您的库中已经存在此软件包(一旦安装了软件包,它就应该一直存在).使用installed.packages() [,1]或library()查看库中的所有包.如果你在那里看到它然后使用这个:
.First <- function() {
require(customPackage)
cat("\nWelcome to R on ", date(), "\n")
}
Run Code Online (Sandbox Code Playgroud)