Сделать пакет в 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")
- В качестве альтернативы, если вы не хотите использовать аргумент lib.loc в приведенной выше библиотечной функции, вы можете запустить эту строку в начале ваших R-скриптов, то есть если вам нужно использовать эти пакеты в этих R-скриптах:
.libPaths(c(.libPaths(),"C:/Users/myusername/Documents/secondRlibrary"))
.
Затем вы можете запустить библиотечную функцию без аргумента lib.loc. Вышеуказанная строка добавит вновь созданную папку в список по умолчанию для списка по умолчанию для поиска пакетов.