Язык программирования с открытым исходным кодом R широко используется для выполнения анализа данных и статистических вычислений. Он поддерживается фондом R Foundation for Statistical Computing и становится все более популярным и расширяемым языком с активным сообществом разработчиков. R предлагает много сгенерированных пользователем пакетов для определенных областей исследований, что позволяет применять его в разных сферах.
В этом обучающем модуле мы выполним установку R и покажем, как добавлять пакеты из официальных архивов Comprehensive R Archive Network (CRAN).
Для прохождения этого обучающего модуля вам потребуется сервер Ubuntu 20.04, имеющий:
sudo
.Чтобы выполнить необходимую настройку, воспользуйтесь нашим руководством по первоначальной настройке сервера.
После выполнения всех предварительных требований мы можем начинать.
Поскольку проект R быстро развивается, в репозиториях Ubuntu не всегда доступна последняя стабильная версия. Поэтому мы начнем с добавления внешнего хранилища, обслуживаемого CRAN.
Примечание. CRAN хранит репозитории в своей сети, но не все внешние репозитории можно считать надежными. Установку следует выполнять только из доверенных источников.
Вначале добавим актуальный ключ GPG.
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
При запуске этой команды мы получим следующий вывод:
OutputExecuting: /tmp/apt-key-gpghome.cul0ddtmN1/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
gpg: key 51716619E084DAB9: public key "Michael Rutter <marutter@gmail.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
Получив надежный ключ, мы можем добавить репозиторий.
Если вы не используете версию 20.04, найдите подходящий репозиторий в списке R Project Ubuntu, где перечислены имена для каждого выпуска. Версия Ubuntu 20.04 имеет кодовое название Focal Fossa, а последняя версия R — это версия 4.0.0. Поэтому для нижеуказанного репозитория следует использовать правила обозначения имен — focal-cran40
.
- sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'
Среди отображаемых данных найдите следующие строки:
Output...
Get:7 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease [3622 B]
Get:8 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ Packages [15.6 kB]
...
Теперь нам нужно запустить обновление
, чтобы добавить манифесты пакетов из нового репозитория.
- sudo apt update
Убедитесь, что одна из строк вывода выглядит примерно так:
Output...
Hit:5 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease
...
Если в результате выполнения команды update
выводится строка, похожая на описанную выше, это означает, что мы успешно добавили репозиторий. Мы можем быть уверены, что не установим случайно более старую версию.
Теперь мы готовы к установке R с помощью следующей команды.
- sudo apt install r-base
Введите в диалоге y
для подтверждения установки.
На момент написания этого документа последней стабильной версией R от CRAN была версия 4.0.1. Номер версии отображается при запуске R.
Поскольку мы планируем установить пример пакета для каждого пользователя системы, мы запустим R от имени пользователя root, чтобы библиотеки были автоматически доступны всем пользователям. Если вы запустите команду R
без привилегий sudo
, для вашего пользователя можно будет настроить личную библиотеку.
- sudo -i R
Output
R version 4.0.0 (2020-04-24) -- "Arbor Day"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
...
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
>
Это подтверждает, что мы успешно установили R и вошли в интерактивную оболочку.
Одно из преимуществ R — большое количество доступных дополнительных пакетов. Для демонстрационных целей мы установим библиотеку txtplot
, которая выводит графики ASCII, включая элементы scatterplot, line plot, density plot, acf и bar chart:
- install.packages('txtplot')
Примечание. На следующем экране показано, где будет установлен пакет.
Output...
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
...
Этот глобальный путь доступен, поскольку мы запустили R от имени пользователя root. Это расположение делает пакет доступным для всех пользователей.
После завершения установки мы можем выполнить загрузку txtplot
:
- library('txtplot')
Если сообщений об ошибках нет, это означает, что библиотека успешно загружена. Рассмотрим на практике пример, демонстрирующий базовую функцию вывода графика с ярлыками осей. В примере, предоставленном пакетом R datasets
, содержатся данные о скорости автомобилей и тормозном пути, основанные на материалах 1920-х годов:
- txtplot(cars[,1], cars[,2], xlab = 'speed', ylab = 'distance')
Output +----+-----------+------------+-----------+-----------+--+
120 + * +
| |
d 100 + * +
i | * * |
s 80 + * * +
t | * * * * |
a 60 + * * * * * +
n | * * * * * |
c 40 + * * * * * * * +
e | * * * * * * * |
20 + * * * * * +
| * * * |
0 +----+-----------+------------+-----------+-----------+--+
5 10 15 20 25
speed
Если вы хотите узнать больше о txtplot
, используйте команду help(txtplot)
в интерпретаторе R.
Любой предварительно скомпилированный пакет можно установить из CRAN с помощью команды install.packages()
. Чтобы узнать больше о доступных пакетах, воспользуйтесь официальным перечнем пакетов, отсортированных по имени, в списке Доступные пакеты CRAN по именам.
Для выхода изR введите q()
. Нажмите n
в диалоге, если не хотите сохранять образ рабочего пространства.
После успешной установки R на сервере вас может заинтересовать руководство по установке RStudio Server, помогающее установить среду IDE для только что развернутой серверной системы. Также вы можете узнать больше о настройке сервера Shiny server для конвертации кода R в интерактивные веб-страницы.
Дополнительную информацию об установке пакетов R с помощью различных инструментов можно найти в указаниях по установке из GitHub, BitBucket или других репозиториев. Это позволит вам использовать последние наработки активного сообщества.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!