Загрузить пакет при запуске

Я пытаюсь загрузить пакет при запуске, если он уже установлен. Если это не так, я хочу сначала установить его, а затем загрузить его. Итак, я создал следующую функцию:

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) Проверьте наличие установленных пакетов перед запуском install.packages ()2) http://www.statmethods.net/interface/customizing.html

Буду признателен за любую помощь.

Спасибо

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

Однако есть ли более эффективный способ загрузки нескольких пакетов - может быть, это векторизованная версия? Мне просто интересно.

Другие вопросы по тегам