Когда я выполняю отладку сложного сценария, мне часто приходится многократно исходить из сценария, чтобы точки останова RStudio были активными. В этом параметре я не хочу устанавливать пакеты, которые уже загружены (присоединены?), Потому что RStudio настоятельно рекомендует перезапускать R всякий раз, когда вы пытаетесь установить пакет, который уже загружен (присоединен?), И часть моего кода тестируется на больших (около 10-30 ГБ) файлах данных, для которых загрузка файла в R занимает много времени.
До этого момента мне никогда не приходилось различать загруженные программы и подключенные, как я всегда делал и то, и другое. Но сейчас я пытаюсь написать функцию, чтобы избежать установки программ, которые загружены (прикреплены?), И я пытаюсь понять относительные последствия избегания переустановки только загруженных пакетов, только прикрепленных пакетов, только пакетов, которые одновременно загружены и присоединены, или только пакеты, которые либо загружены, либо прикреплены.
Предполагается, что приведенный ниже код обновит все пакеты, а затем установит все пакеты, взятые из вектора (возможно) новых пакетов, которые либо удалены, либо не подключены, либо и то, и другое. Однако, если пакет загружен, но не подключен и не установлен (если это возможно), он не будет установлен. Вызовет ли это ограничение проблемы при любых вероятных обстоятельствах?
install.packs <- function(pks, ...){
update.packages(ask=FALSE)
uninstalled <- pks[!(pks %in% installed.packages(...)[ , 1])]
unattached <- pks[!(pks %in% (.packages(...)))]
new_pks <- unique(c(uninstalled, unattached))
install.packages(unattached, repos = "https://cloud.r-project.org/", ...)
}