Сделать пакет в R не требуется для загрузки при запуске R/RStudio?

Я много раз искал ответ на этот вопрос, прежде чем спрашивать и не мог найти ответ, но если его там, пожалуйста, укажите мне его. Каждый раз, когда я начинаю студию R, у меня есть пакеты, которые автоматически загружаются:

Loading required package: RMySQL
Loading required package: DBI
Loading required package: cocor
Loading required package: RMySQL

Я бы хотел, чтобы эти пакеты переставали автоматически загружаться каждый раз, когда я запускаю студию R, и попытались удалить и переустановить студию R и R в дополнение к следующему:

detach("package:RMySQL",unload=TRUE)

Для всех трех этих пакетов это не работает. Пожалуйста помоги! Спасибо.

sapply(ls(), function(x) class(get(x)))
named list()

Ответ 1

Из комментариев, которые вы опубликовали, похоже, что вы используете Windows. Местоположение пользователя .RProfile может быть показано с помощью:

(my_rprofile <- file.path(Sys.getenv("R_USER"), ".RProfile"))

Затем вы можете проверить, существует ли этот файл, используя:

file.exists(my_rprofile)

и если это возвращает TRUE, откройте его для редактирования, используя:

file.edit(my_rprofile)

Если файл отсутствует, попробуйте:

file.exists(".RProfile")

а если TRUE:

file.edit(".RProfile")

Если вы выполните эту команду в RStudio, вы должны открыть окно с текущим содержимым вашего .RProfile. Я подозреваю, что он включает в себя что-то вроде:

library("RMySQL")

который затем необходимо удалить, прежде чем сохранять.

Другие вещи для проверки:

Sys.getenv("R_DEFAULT_PACKAGES")
# should be blank
.First
# should give an error that .First not found

Если .First установлен и у вас нет файла .RProfile, вы можете определить его в file.path(Sys.getenv("R_USER"), ".RData"), и было бы целесообразно переименовать этот файл (или отключить восстановление .RData в параметрах RStudio.

Даже если .First undefined, я все равно попытаюсь загрузить R/RStudio без восстановления из .RData, так как может быть, что вы восстанавливаете некоторые объекты S4, которые зависят от этих пакетов.

Ответ 2

Посмотрите этот пост, и вы, вероятно, захотите найти свой файл .RProfile. Посмотрите ?Startup (обратите внимание на капитал S) за дополнительной помощью. .RProfile должен находиться под папкой /etc/ внизу, где R установлен на вашем компьютере. За вышеприведенный пост быстрый способ найти свое местоположение будет состоять в следующем:

candidates <- c( Sys.getenv("R_PROFILE"),
                 file.path(Sys.getenv("R_HOME"), "etc", "Rprofile.site"),
                 Sys.getenv("R_PROFILE_USER"),
                 file.path(getwd(), ".Rprofile") )

Filter(file.exists, candidates)

Ответ 3

В прошлом я рассматривал эту проблему, чтобы просто создать новую папку на вашем компьютере, которая будет использоваться в качестве альтернативной папки библиотеки R, и переместить соответствующие папки пакетов из вашей библиотеки по умолчанию в эту папку. В основном, когда R ищет эти пакеты, он не найдет его, поскольку R не будет знать, куда вы их переместили, если только вы не укажете R, где искать. Для этого выполните следующие действия:

  • Создайте новую папку на вашем ПК, которая будет использоваться в качестве дополнительной папки библиотеки R. Например, у меня есть папка с именем secondRlibrary в моих документах Windows со следующим путем ( "C:\Users\myusername\Documents\secondRlibrary" )
  • Перейдите в папку библиотеки R, в которой установлены пакеты. На моем компьютере Windows это находится в "C:\Users\myusername\Documents\R\win-library\3.0.2". Иногда они также можно найти в следующих папках: ( "C:\Program Files\R\R-3.0.2\library", "C:\Program Files (x86)\R\R-3.0.2\library" ), в зависимости от версии R, которую вы используете. (Я запускаю версию 3.0.2)
  • Найти и переместить (вырезать и вставить) папки и все содержимое для соответствующих пакетов в новую папку. Папки обычно имеют те же имена, что и имена пакетов R. Таким образом, когда начинается R. Обязательно удалите их из всех перечисленных мной папок в новую папку, которую вы только что создали.
  • Если вы запустите R, пакеты не будут загружаться автоматически, так как они не будут найдены в R-библиотеке по умолчанию (и R не может найти их автоматически, если вы не сообщите об этом).
  • Если вы хотите загрузить пакеты по отдельности, используйте функцию библиотеки с аргументом lib.loc, чтобы указать путь к библиотеке, содержащей этот пакет (в данном случае созданную новую папку). Например, если я хотел загрузить пакет RMySQL, я бы использовал следующий код

library("package:RMySQL",lib.loc = "C:/Users/myusername/Documents/secondRlibrary")

  1. В качестве альтернативы, если вы не хотите использовать аргумент lib.loc в приведенной выше библиотечной функции, вы можете запустить эту строку в начале ваших R-скриптов, то есть если вам нужно использовать эти пакеты в этих R-скриптах: .libPaths(c(.libPaths(),"C:/Users/myusername/Documents/secondRlibrary")).

Затем вы можете запустить библиотечную функцию без аргумента lib.loc. Вышеуказанная строка добавит вновь созданную папку в список по умолчанию для списка по умолчанию для поиска пакетов.