Согласно RStudio:
Кроме того, некоторые функции, такие как library () и require (), ожидают имена пакетов для дополнений.RStudio автоматически определяет, ожидает ли конкретная функция имя пакета и предоставляет эти имена в качестве завершения ...
Мой вопрос: как?Я пишу пользовательскую функцию, которая принимает имена пакетов в качестве аргументов, но RStudio только дополняет аргументы именами объектов и функций, и я не могу сказать, что это за код library()
и require()
, который RStudio принимает
Моя функция:
unpack <- function(...,
lib = NULL,
repos = getOption("repos")) {
pkgs <- sapply(match.call(expand.dots = TRUE)[-1], as.character)
new.pkgs <-
pkgs[!(
pkgs %in% installed.packages(lib.loc = lib)[, "Package"]
)]
if (length(new.pkgs))
install.packages(new.pkgs,
lib = lib,
repos = repos)
sapply(pkgs, require,
lib.loc = lib,
character.only = TRUE)
}