在启动时加载包

时间:2016-08-08 04:03:53

标签: r rstudio startup

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

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")

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

我有两个问题:

1)有人可以帮我吗?

2)有更有效的方法吗?

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

我很感激任何帮助。

由于

1 个答案:

答案 0 :(得分:-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")

但是,是否有更有效的方法来加载多个包 - 可能是这个的矢量化版本?我很好奇。