我正在尝试在启动时加载包,如果它已经安装的话。如果不是那么我想先安装然后加载它。所以,我创建了以下函数:
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
我很感激任何帮助。
由于
答案 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")
但是,是否有更有效的方法来加载多个包 - 可能是这个的矢量化版本?我很好奇。