Как установить пакет в r studio
Перейти к содержимому

Как установить пакет в r studio

  • автор:

5 Пакеты в R

R — очень богатый язык с широкими возможностями. Однако очень скоро мы поймем, что этих возможностей нам не хватает. Эти возможности нам могут предоставить дополнительные пакеты (packages).

В большинстве случаев основным содержанием пакетов является набор дополнительных функций. Кроме функций, пакеты могут содержать наборы данных и новые структуры данных.

Обычно пакеты посвящены решению какого-то класса задач в определенной области. Например, есть множество пакетов для создания какого-то одного типа визуализации. Еще один пример — пакет beepr , который содержит всего две функции: beep() и beep_on_error() для воспроизведения звукового сигнала. Это может быть удобно, если ваш скрипт работает долго, но вы хотите получить уведомление, когда его выполнение завершится.

Более крупные пакеты посвящены целому классу задач. Например, пакеты stringi и stringr посвящены работе со строками, значительно расширяя и делая более удобной работу со строковыми данными в R. Еще один пример: пакет igraph для работы с графами (сетями). Этот пакет предоставляет дополнительный класс данных igraph для хранения и работы с сетями.

Есть и совсем крупные пакеты, которые значительно расширяют базовый функционал R, изменяя основные принципы работы в нем. Это пакеты data.table и tidyverse . Это настолько крупные пакеты, что их даже называют отдельными диалектами R, потому что код, написанный с использованием этих пакетов, довольно сильно отличается от базового R. Кроме того, tidyverse — это не просто пакет, а целая экосистема пакетов, который взаимодополняют друг друга, но для удобства их можно устанавливать и загружать как один пакет tidyverse . Еще один пример крупной экосистемы из пакетов — это пакеты mlr3 и tidymodels для машинного обучения, который представляет собой большой расширяемый “пакет пакетов”, где отдельные пакеты посвящены отдельным этапам и задачам машинного обучения.

5.2 Встроенные пакеты R

Вообще, даже сам R является набором из нескольких пакетов: основного base и нескольких других, таких как stats , utils , graphics . Вот их полный список:

 rownames(installed.packages(priority = "base")) 
 [1] "base" "compiler" "datasets" "graphics" "grDevices" "grid" [7] "methods" "parallel" "splines" "stats" "stats4" "tcltk" [13] "tools" "utils" 

Чтобы пользоваться этими пакетами ничего дополнительно делать не нужно.

5.3 Установка пакетов с CRAN

Функция install.packages() позволяет скачивать пакеты с Comprehensive R Archive Network (CRAN). На репозитории CRAN собрано более 19000 пакетов (число постоянно меняется, как в большую, так и меньшую сторону). Каждый из этих пакетов проходит проверку перед попаданием в CRAN: он должен быть хорошо задокументирован, стабильно работать и решать какую-то задачу.

Для примера установим пакет remotes . Это пакет для удобной установки пакетов не с CRAN и скоро нам понадобится.

 install.packages("remotes") 

При установке вы увидите много непонятных надписей красным (или черным) шрифтом. Не пугайтесь, это нормально, происходит скачивание и установка пакетов. Скорее всего, если нигде нет слова Error, то пакет успешно установился.

Иногда установка бывает очень долгой, потому что большие пакеты склонны иметь много зависимостей: для работы какого-то пакета может понадобиться другие пакеты, а для тех пакетов — еще какие-то пакеты. Таким образом, устанавливая какой-нибудь современный пакет, вы, возможно, установите десятки других пакетов! Зато если они понадобятся сами по себе, то их уже не нужно будет устанавливать.

5.4 Загрузка установленного пакета

Установить пакет с помощью install.packages() недостаточно, пакет нужно еще загрузить. Для этого есть функция library() .

 library("remotes") 

В отличие от install.packages() , функция library() принимает название пакета и как строчку в кавычках, и как название без кавычек.

 library(remotes) 

Теперь функции, данные и классы из пакета доступны для работы.

Полезное: аналогия с Python

Если сравнивать с Python, то install.packages() – это аналог установки библиотек, например, с помощью pip, а library() – это аналог import (например, import pandas as pd ).

5.5 Вызов функции из пакета с помощью ::

Если пакетом нужно воспользоваться всего один-два раза, то имеет смысл не подключать весь пакет, а загрузить отдельную функцию из него. Для этого есть специальный оператор :: , который использует функцию (указанную справа от :: ) из выбранного пакета (указанного слева от :: ), не загружая пакет полностью.

Для примера воспользуемся функцией package_deps() из только что установленного пакета remotes , которая возвращает все зависимости пакета:

 remotes::package_deps("tidyverse") 
Needs update ----------------------------- package installed available is_cran remote cpp11 0.4.3 0.4.4 TRUE CRAN vctrs 0.6.2 0.6.3 TRUE CRAN sys 3.4.1 3.4.2 TRUE CRAN jsonlite 1.8.5 1.8.7 TRUE CRAN curl 5.0.0 5.0.1 TRUE CRAN xml2 1.3.3 1.3.4 TRUE CRAN httr 1.4.5 1.4.6 TRUE CRAN fastmap 1.1.0 1.1.1 TRUE CRAN digest 0.6.31 0.6.32 TRUE CRAN sass 0.4.5 0.4.6 TRUE CRAN cachem 1.0.6 1.0.8 TRUE CRAN tinytex 0.44 0.45 TRUE CRAN htmltools 0.5.4 0.5.5 TRUE CRAN fontawesome 0.5.0 0.5.1 TRUE CRAN bslib 0.4.2 0.5.0 TRUE CRAN xfun 0.37 0.39 TRUE CRAN processx 3.8.1 3.8.2 TRUE CRAN rmarkdown 2.20 2.23 TRUE CRAN knitr 1.42 1.43 TRUE CRAN tzdb 0.3.0 0.4.0 TRUE CRAN vroom 1.6.1 1.6.3 TRUE CRAN broom 1.0.4 1.0.5 TRUE CRAN readr 2.1.3 2.1.4 TRUE CRAN googledrive 2.0.0 2.1.1 TRUE CRAN gargle 1.3.0 1.5.1 TRUE CRAN blob 1.2.3 1.2.4 TRUE CRAN modelr 0.1.10 0.1.11 TRUE CRAN lubridate 1.9.1 1.9.2 TRUE CRAN haven 2.5.1 2.5.3 TRUE CRAN googleshe. 1.0.1 1.1.1 TRUE CRAN dtplyr 1.2.2 1.3.1 TRUE CRAN dbplyr 2.3.0 2.3.2 TRUE CRAN conflicted NA 1.2.0 TRUE CRAN tidyverse 1.3.2 2.0.0 TRUE CRAN 

В дальнейшем использование оператора :: будет иногда использоваться, чтобы указать, из какого пакета взята функция.

Оператор :: полезен еще и в тех случаях, когда в разных пакетах присутствуют функции с одинаковым названием. Например, у основного пакета tidyverse, dplyr , есть функция filter() . Функция с точно таким же названием есть в базовом R в пакете stats , в котором та выполняет совершенно другую задачу. Если у вас уже загружен dplyr , то использование :: укажет на то, что вы хотите воспользоваться именно функцией filter() из пакета stats :

 stats::filter(1:20, rep(1,3)) 
Time Series: Start = 1 End = 20 Frequency = 1 [1] NA 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 NA

Подобные путаницы могут возникнуть, если у вас загружено много пакетов, поэтому старайтесь не загружать слишком много пакетов, а если есть функции с одинаковым названием, то обязательно используйте оператор :: . Иначе слишком велик риск загрузить пакеты не в том порядке и получить из-за этого ошибку или некорректный результат.

Полезное: оператор :: для указания используемого пакета

В дальнейшем я буду иногда использовать :: , чтобы было понятно, из какого пакета взята та или иная функция

Выгрузить ненужный пакет можно с помощью функции detach() .

 detach(package:remotes) 

5.6 Установка пакетов c Bioconductor

У биологов есть свой большой репозиторий, который является альтернативой CRAN, — Bioconductor. С него можно скачать множество специализированных пакетов для работы с биологическими данными.

Для установки пакетов с Bioconductor сначала нужно скачать пакет BiocManager с CRAN.

 install.packages("BiocManager") 

Теперь можно воспользоваться функцией install() из пакета BiocManager для установки пакета flowCore — пакета для анализа данных проточной цитометрии.

 BiocManager::install("flowCore") 

5.7 Установка пакетов с Github

Некоторых пакетов нет ни на CRAN, ни на Bioconductor. Обычно это касается пакетов, разработчики которых по каким-либо причинам решили не проходить проверки или не прошли проверки на строгие требования CRAN. Иногда бывает, что пакет был удален с CRAN (например, автор давно не занимается им) или же версия пакета на CRAN отстает от последней, а именно в ней реализованы так нужные вам функции. В некоторых случаях пакета может не быть на CRAN, потому что его разработчики активно занимаются его развитием и постоянно переделывают уже имеющийся функционал, добавляя новые возможности и удаляя старые. Это нужно делать с осторожностью, когда пакет уже выложен на CRAN, потому что если функции новой версии пакета будут работать по-другому, то это может вызвать массу проблем.

Во всех этих случаях пакет обычно можно скачать с репозитория Github. Для этого нам понадобится уже установленный (с CRAN, разумеется) пакет remotes 1 .

 remotes::install_github("dracor-org/rdracor") 

Теперь установленный пакет осталось загрузить, после чего им можно пользоваться.

 library(rdracor) godunov  get_net_cooccur_igraph(corpus = "rus", play = "pushkin-boris-godunov") plot(godunov) 

Пакет remotes можно так же использовать для загрузки пакетов из Bioconductor:

 remotes::install_bioc("flowCore") 

5.8 Где искать нужные пакеты

Мы разобрались с тем, как устанавливать пакеты. А где же их находить?

Это вопрос гораздо более сложный чем может показаться. Например, можно работать в R и не знать, что существует пакет, который решает нужную для вас задачу. Или же найти такой пакет и не знать, что есть более современный пакет, который делает это еще лучше!

Здесь нет каких-то готовых решений. CRAN пытается создавать и поддерживать тематические списки (Task View) пакетов с описанием задач, которые они решают:

Безусловно, если вы глубоко занимаетесь какой-либо темой из списка, то стоит изучить соотвестствующий Task View, но начинать знакомство с помощью Task View достаточно тяжело.

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

  1. пакет remotes “откололся” от более старого пакета devtools , а многие функции из remote просто скопированы из devtools . Разработчики devtools / remotes рекомендуют использовать для установки пакетов именно более легковесный remotes , но во многих случаях вы увидите код с devtools::install_github() . Оба варианта будут работать.↩︎

Общая проблема при установке любого пакета R

При попытке установить любой пакет R в системе, например:

Вы получаете сообщение об ошибке примерно следующим образом:

Загруженные исходные пакеты находятся в
?/tmp/Rtmph4YKLX/downloaded_packages?
Обновление индекса HTML пакетов в «. Библиотека «
Предупреждение install.packages:
не удается создать файл
«/ opt/POC/lib64/Revo-7.3/R-3.1.1/lib64/R/doc/html/packages.html», причина
«Отказано в разрешении»

Решение

Эта ошибка возникает, когда у вас необходимые разрешения возможность записи в текущей папке библиотеки R имени пользователя

Вы вошли качестве. Можно использовать функции R «.libPaths()» для обоих запросов и изменение текущего места R будет использоваться для установки новых библиотек, предоставленных пользователями.

Чтобы изменить расположение по умолчанию, в котором постоянно добавлять библиотеки R участие пользователя, можно добавить это для конкретного пользователя. Файл «Rprofile» или для всей системы «. Rprofile.site’ в «/ usr/lib64/Revo-7.3/R-3.1.1/lib64/R/etc», если необходимо изменить этот параметр для всех пользователей R.

Ошибки при установке R пакетов на Windows.

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

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

package ‘foo’ is not available”

Достаточно распространённая ошибка, текст которой к сожалению не сообщает о реальной проблеме, которой была эта ошибка вызвана.

В одной из статей на RBloggers, автор опубликовал подробный чек лист как с этой ошибкой бороться.

  1. Неправильно написанное название пакета. Первое, что стоит проверить — это правильно ли вы написали название пакета, который хотите установить. R регистро чувствительный язык, поэтому даже одна буква написанная не в том регистре будет считаться неправильным именем пакета. Лучший способ копировать название пакета из CRAN.
  2. Проверьте своё интернет соединение. Звучит банально, но иногда в процессе разработки когда мы можем не заметить, что уже более часа работаем без доступа к интернету.
  3. Проверьте сеть CRAN. Возможно в момент установки пакета не доступны сервера CRAN, для проверки просто попробуйте загрузить главный сайт проекта. Если основное зеркало CRAN не доступно, вы можете установить пакет из другого, используя аргумент repos внутри функции install.packages() .
  4. Убедитесь в том, что пакет был опубликован на CRAN. Перед тем как пакет попадёт на CRAN, зачастую автор проводит большую работу над его тестированием, и доработкой функционала. Как правило на CRAN публикуются пакеты чей код и функционал уже устоялся, и считался стабильным. Поэтому 4ый шаг, просто убедитесь в том, что нужный пакет уже опубликван. Если пакета нет на CRAN, то скорее всего вы можете найти его на GitHub, и установить с помощью команды devtools::install_github(‘pkg_name’) .
  5. Убедитесь в том, что пакет не был удалён из CRAN. Требования политики публикации пакетов в CRAN не редко меняются, если автор перестал поддерживать свой пакет, и с течением времени этот пакет стал нарушать правила политики публикации CRAN, то его удалят из репозитория. В таком случае перейдя на страницу пакета https://cran.r-project.org/package=PACKAGE_NAME, вы увидите сообщение “Package ‘foo’ was removed from the CRAN repository.”, что и свидетельствует об удалении пакета из CRAN. Если вы получите ошибку 404, значит пакет ранее не был опубликован на CRAN.

unable to create temporary directory

Недавно столкнулся с проблемой при установке пакетов из RStudio — ОШИБКА: нет прав для установочной папки ‘C:/Users/Documents/R/win-library/3.5’.

Та же ошибка может возвращать и следующие сообщения:

  • ‘lib = «C:/Users/Alsey/Documents/R/win-library/3.5″‘ is not writable
  • Error in install.packages : unable to create temporary directory ‘C:\Users\Alsey\Documents\R\win-library\3.5\file34ac62294fbd’

С чем связано её появление я так и не понял, но устранить получилось следующим образом:

  1. Создайте новую папку, которая будет в последствии вашей пользовательской библиотекой R пакетов, лучше создавать её не на диске C, что бы в последствии не сталкиваться с такой же проблемой.
  2. В основной вашей рабочей директории (скорее всего это папка ‘Документы’ которая обычно находится в каталоге пользователя Windows, примерный путь к ней C:\Users\Alsey\Documents ), найдите файл .Renviron, на данный момент он будет пустой, это файл конфигурации R, именно в нём можно менять дефолтные значения глобальных переменных R, вам необходимо в него вписать одну строку R_LIBS_USER=D:/r_library, где D:/r_library это путь к созданной на первом шаге папке.
  3. Далее перезапустите сессию R, и можете убедиться с помощью команды .libPaths() , что созданная на первом шаге папка стала пользовательской библиотекой для установки и хранения пакетов.

Could not find tools necessary to compile a package

С этой ошибкой я столкнулся при установке пакетов из GitHub после обновления R до более новой версии.

Ответ я нашел вот тут.

Проблема возникает при попытке RStudio проверить установленные у вас инструменты сборки пакетов, для того, что бы подвить эту проверку необходимо перед установкой пакета установить следующую опцию.

options(buildtools.check = function(action) TRUE )

После чего можно устанавливать пакет.

Found continuation line starting ‘ shortcut functio …’ at begin of record

Эта проблема появилась при установке пакетов из GitHub с помоью devtools не так давно, и связана она с файлом DESCRIPTION.

Возникает в ситуации когда в файле DESCRIPTION имеется многострочное описание в поле » Description: «.

Для исправления вам необходимо форкнуть нужный пакет на GitHub.

И сделать однострочным поле » Description: » в файле DESCRIPTION, далее устанавливайте пакет уже из своего репозитория.

(converted from warning) installation of package ‘C:/Users/Alsey/AppData/Local/Temp/2/Rtmp4g880D/file259c11b85f00/vctrs_0.1.0.9003.tar.gz’ had non-zero exit status

Вызвана данная ошибка конфликтом возникающим при установке пакетов одновременно для разных версий ядра R, 32 и 64 битных.

Полный текст ошибки из консоли:

error: ld returned 1 exit status no DLL was created ERROR: compilation failed for package 'vctrs' * removing 'D:/r_library/vctrs' * restoring previous 'D:/r_library/vctrs' Error in i.p(. ) : (converted from warning) installation of package ‘C:/Users/Alsey/AppData/Local/Temp/Rtmpyu30Ew/file35cc2a261c8f/vctrs_0.2.0.9000.tar.gz’ had non-zero exit status

Узнать разрядность версии R в которой вы работаете можно двумя способами:

Sys.getenv("R_ARCH") [1] "/x64"

В случае если вы используете 32 битный R вернётся значение «/i386» .

Sys.info()[["machine"]] [1] "x86-64"

На 32 битном R вы получите «x86_32» .

После того, как мы определили разрядность ядра требуется пойти одним из описанных способов, для 64 битной версии просто используйте при установке пакета опцию «—no-multiarch».

devtools::install_github("username/repos", INSTALL_opts = "--no-multiarch")

Если у вас 32 битная версия, то необходимо изменить в переменной окружения PATH путь к утилите RTools с C:\Rtools\mingw_64\bin на C:\Rtools\mingw_32\bin . О том как это сделать можно узнать в этой статье .

Далее запускаем установку пакета только для 32 битной версии с помощью опции «—no-multiarch» , так же как и ранее было показано с примером для 64 разрядного R.

Warning Message: cannot remove prior installation of package ‘X’

Если вы увидели такое сообщение при попытке установить какой-либо пакет, это говорит о том, что пакет в данный момент заблокирован каким – то процессом. Первое, что вам необходимо попробовать сделать это перезапустить RStudio, и попробовать повторно запустить установку пакета.

Если перезапуск RStudio не помог, то откройте диспетчер задач, и на вкладке подробности посмотрите, нет ли у вас каких либо зависших R сеансов.

Если такие есть их необходимо завершить, и попробовать повторно запустить процесс установки пакета.

Если и это не помогло, то идём третьим способом.

  1. Найдите путь к папкам, в которых у вас установлены пакеты, делается это командой .libPaths() .
  2. В ручном режиме удалите папку с пакетом, который пытаетесь установить.
  3. Откройте RStudio и повторите попытку установить пакет.

Один из перечисленных выше способов должен сработать.

Статья будет постоянно дополняться, дата последнего редактирования 6 октября 2020 года.

Установка пакетов через функцию «install_github» язык R

Никак не могу обойти ошибку со скачиванием пакетов с Github. Стоят свежие версии языка R и RStudio. Стоит windows 10, запускаю от админа. Получаю следующую ошибку:

could not find function «install_github»

Отслеживать
3,125 6 6 золотых знаков 18 18 серебряных знаков 33 33 бронзовых знака
задан 28 окт 2018 в 22:20

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Для того, чтобы скачивать пакеты c Github, Вам необходимо установить и подключить библиотеку devtools :

install.packages("devtools") library("devtools") 

Отслеживать
ответ дан 29 окт 2018 в 2:34
Alexshev92 Alexshev92
3,125 6 6 золотых знаков 18 18 серебряных знаков 33 33 бронзовых знака
Да, эту библиотеку я ставил.
29 окт 2018 в 12:03
Установилась без ошибок, подключается нормально?
29 окт 2018 в 13:50
29 окт 2018 в 19:32
А при подключении библиотеки какой вывод?
30 окт 2018 в 5:19

  • r
  • rstudio
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *