2

我对 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)),但没有安装新库。谢谢您的帮助!

编辑:感谢您的帮助!实际上,我确实需要为每个用户在多台机器上安装这些包,而不是让他们手动安装包一次,我认为在站点文件中这样做会很好。我尝试了贾斯汀的建议,先检查包裹,结果奏效了!再次感谢您的帮助!

4

1 回答 1

7

除非你从一台电脑切换到另一台电脑,否则你的库中应该已经有这个包(也就是说,一旦你安装了一个包,它就应该一直在那里)。使用installed.packages() [,1]library()查看库中的所有包。如果你在那里看到它,那么使用这个:

.First <- function() {
  require(customPackage)
  cat("\nWelcome to R on ", date(), "\n") 
}
于 2012-05-15T23:19:56.883 回答