【问题标题】:Load package at start-up启动时加载包
【发布时间】:2016-08-08 04:03:53
【问题描述】:

如果它已经安装,我正在尝试在启动时加载一个包。如果不是,那么我想先安装它然后加载它。所以,我创建了以下函数:

RLoadPackage <- function(packname)
{
  if((packname %in% rownames(installed.packages()))==FALSE)
  {
    install.packages(packname,dependencies = TRUE)
  } 
  library(packname,character.only = TRUE)
}

一旦打开 RStudio,它就可以正常工作,但在启动时就不能正常工作了。我将此功能添加到我的本地 .RProfile 文件中:

RLoadPackage("ggplot2")

RLoadPackage <- function(packname)
{
  if((packname %in% rownames(installed.packages()))==FALSE)
  {
    install.packages(packname,dependencies = TRUE)
  } 
  library(packname,character.only = TRUE)
}

但是,我收到错误消息:

Error: could not find function "RLoadPackage"

一种选择是手动安装包,然后添加一堆library("xyz")

但是,上述选项非常笨拙。所以,我创建了一个函数。

我有 2 个问题:

1) 有人可以帮我吗?

2) 有没有更有效的方法?

我的帖子的灵感来自以下两个链接: 1)Check for installed packages before running install.packages() 2)http://www.statmethods.net/interface/customizing.html

如果有任何帮助,我将不胜感激。

谢谢

【问题讨论】:

  • 查看help(".First")
  • @Richard Scriven 和 Shayaa——我相信我读懂了你的想法!我只是认为 R 是顺序处理函数。所以,我先定义了这个函数,然后它就起作用了。但是,我正在寻找更高效的代码——如果您知道任何方法可以加载 10-15 个包并执行我想做的事情。感谢您的帮助。
  • 您的“错误:找不到函数...”不是因为您在定义RLoadPackage之前调用了RLoadPackage("ggplot2")吗?
  • 是的!没错

标签: r rstudio startup


【解决方案1】:

好的。这段代码有效:

library("utils")

RLoadPackage <- function(packname)
{
  if((packname %in% rownames(installed.packages()))==FALSE)
  {
    install.packages(packname,dependencies = TRUE)
  } 
  library(packname,character.only = TRUE)
}

RLoadPackage("ggplot2")
RLoadPackage("dplyr")
RLoadPackage("lubridate")

但是,有没有更有效的方式来加载多个包——也许是这个的矢量化版本?我只是好奇。

【讨论】:

猜你喜欢
  • 2013-07-16
  • 2017-02-26
  • 1970-01-01
  • 2017-12-23
  • 2014-10-21
  • 1970-01-01
  • 2012-11-18
  • 2012-04-04
  • 2019-12-17
相关资源
最近更新 更多