【问题标题】:Update Package Automatically at Start-up启动时自动更新包
【发布时间】:2016-12-13 19:36:41
【问题描述】:

每次加载 RStudio 时都必须单击工具 -> 更新包,这很烦人。例如,我可以使用update.packages(c("ggplot2")) 来更新我在.RProfile 中的包,但问题是它不会查找其他包(依赖项)。例如,我每次启动 RStudio 时都必须更新“seriation”和“digest”包,而这些包不是我在启动时加载的。有没有人有代码在启动时自动检查和更新所有包?如果是这样,你能在这里分享吗?我广泛搜索了这个主题并通过 SO 搜索,似乎流行的观点是使用 RStudio 的菜单。这是我指的线程:How to update R2jags in R?

我能想到的一种方法是在 .RProfile 中:

a<-installed.packages()
b<-data.frame(a[,1])

然后调用这个函数:https://gist.github.com/stevenworthington/3178163

但是,我不太确定这是否是最佳方法。

另一个链接线程是:Load package at start-up

我创建了上面的线程。 我会很感激任何想法。

【问题讨论】:

  • 这是个坏主意。您会意识到,一旦您需要在重要会议之前创建并打印出一些结果,然后包更新就会破坏您的代码。
  • 我明白了。伟大的想法罗兰!我是 R 新手(并且已从 STATA 切换)——我现在只编程了大约 10 天。你认为这样的问题很普遍吗?

标签: r package rstudio rprofile


【解决方案1】:

当我遇到同样的问题时,我在互联网上找到了这个(不记得在哪里),尽管你仍然需要运行这个程序。希望这会有所帮助。

all.packages <- installed.packages()
r.version <- paste(version[['major']], '.', version[['minor']], sep = '')

for (i in 1:nrow(all.packages))
{
  package.name <- all.packages[i, 1]
  package.version <- all.packages[i, 3]
  if (package.version != r.version)
  {
    print(paste('Installing', package.name))
    install.packages(package.name)
  }
}

【讨论】:

    猜你喜欢
    • 2011-04-22
    • 1970-01-01
    • 2020-01-08
    • 2014-05-15
    • 1970-01-01
    • 2021-10-19
    • 2013-06-26
    • 2015-07-31
    • 1970-01-01
    相关资源
    最近更新 更多