Я сам изучал R в течение последних нескольких недель.
В своей статье я рассказываю о языке программирования R и его главных концепциях, которые пригодятся каждому исследователю данных.
Мотивация
Сфера науки о данных и развивающихся вычислений требуют от нас всё время адаптироваться и вырабатывать новые навыки. Причина в том, что эта область меняется очень быстро. А ещё в ней в целом высокая планка требований. В профессиональной жизни каждого исследователя данных приходит время, когда нужно бы знать больше, чем один язык программирования. Так я и выбрал R.
В моих материалах вы узнаете обо всех ключевых областях и разберётесь в базовых понятиях. Предполагается, что вы, как читатели, вообще не знакомы с R или совсем немного в нем разбираетесь.
Я очень советую именно R по многим причинам.
Автор фото Cris DiNoto, источник Unsplash
R становился всё известнее и известнее, пока не стал одним из самых популярных языков программирования. Его создали статистики (специалисты по статистике) для статистиков. Он хорошо сочетается с другими языками программирования, например с C++, Java, SQL. Более того, его воспринимают как язык, который отлично подходит для работы со статистикой. А в результате большое количество финансовых организаций и крупных вычислительных компаний применяют R в своих исследованиях и разработках.
Восстановление файлов через R-Studio
Python — язык для решения задач общего характера, а R — язык программирования для аналитики.
Этот текст объяснит следующие ключевые области языка R:
- Что такое R?
- Как установить R?
- Где писать код на R?
- Что такое R-скрипт и R-пакет?
- Какие типы данных есть в R?
- Как декларировать переменные и их область действия в R?
- Как писать комментарии?
- Что такое векторы?
- Что такое матрица?
- Что собой представляют списки?
- Что такое датафреймы?
- Различные логические операции в R.
- Функции в R.
- Циклы в R.
- Считывание и запись внешних данных в R.
- Как производить статистические вычисления в R.
- Построение графиков и диаграмм в R.
- Объектно-ориентированное программирование в R.
- Знаменитые библиотеки R.
- Как установить внешние библиотеки R.
Приступим же!…
Я буду объяснять язык программирования, начиная с основ, в таком стиле, чтобы вам было легче разобраться. Стоит сказать, что ключ к прогрессу в разработке — это постоянная практика. Чем больше, чем лучше.
Этот материал должен стать целостной базой для вас — читателей.
1. Что же такое R?
- R — это бесплатный язык программирования с лицензией GNU . В сущности R — это статистическая среда.
- R в основном используется для статистических вычислений. Он имеет набор алгоритмов, которые углубленно применяются в области машинного обучения. А конкретнее — в анализе временных рядов, классификации, кластеризации, линейном моделировании и т.д.
- Также R — это среда, в которой есть набор программных пакетов, с которыми можно производить вычисления для построения диаграмм и для манипуляций с данными.
- R значительно применяется в проектах статистических исследований.
- R очень похож на другой язык программирования — S.
- R компилируется и запускается на UNIX, Windows, MacOS, FreeBSD и Linux.
- В R есть большое количество структур данных, операторов и параметров. Он включает многое: от массивов до матриц, от циклов до рекурсии вместе с интеграцией с другими ЯП, например с C, C++ и Fortran.
- C можно использовать для обновления объектов в R напрямую.
- R можно дополнять новыми пакетами.
- R — интерпретатор.
- Авторы R вдохновлялись S+, так что, если вы знакомы с S, изучение R будет для вас простым следующим шагом.
Преимущества R:
Вдобавок к плюсам, о которых я написал выше:
Восстановление файлов при помощи программы R-studio
- R просто выучить.
- В среде есть очень много бесплатных пакетов с открытым исходным кодом для статистики, аналитики и графики.
- Богатство различных научных трудов вместе с их применением в R в вашем распоряжении.
- Лучшие мировые университеты учат своих студентов R, следовательно, он стал принятым стандартом, продолжит расти и развиваться.
- Широкие возможности интеграции с другими языками.
- Огромная поддержка в сообществе специалистов.
Ограничения R:
Также есть и некоторые ограничения:
- R не такой быстрый, как C++. К тому же, есть проблемы с его защищённостью и управлением памятью.
- R имеет много пространств имен. Иногда такое впечатление, что их даже слишком много. Тем не менее ситуация улучшается.
- Так как R — это статистический язык, то он не такой интуитивный, как Python, и в нём не так просто работать с ООП, как в Python.
Давайте уже начнём его изучать
А теперь я представлю вам язык R в формате кратких описательных разделов.
Автор фото Jonas Jacobsson, источник Unsplash
2. Как установить R?
Можете установить R на эти платформы:
Первый шаг — загрузите R:
- Откройте интернет-браузер.
- Пройдите по ссылке www.r-project.org .
- Последняя версия R на момент написания оригинала этой статьи была 3.6.3 (Holding the Windsock). Выпущена 2020–02–29.
Вот вам и линки:
3. Где писать на R?
Есть разные графические интерфейсы. Очень советую R-Studio.
Скриншот R-Studio
Загрузите десктопную версию RStudio:
- Скачайте RStudio по ссылке https://rstudio.com/products/rstudio/download/
- Лицензия RStudio Desktop бесплатная.
- За подробностями сюда: https://rstudio.com/products/rstudio/#rstudio-desktop
- RStudio требует R 3.0.1+ .
Если вы работаете на Windows, в процессе установки R Studio по умолчанию попадет сюда:
4. Что такое пакет R и скрипт R?
Это два ключевых компонента в языке. В этом разделе поверхностно расскажу о концепциях.
Пакет R
Так как R — это ЯП с открытым кодом, важно понимать, что тут подразумевается под пакетом. Пакет в сущности группирует и упорядочивает код, а также другие функции. Пакет — это библиотека, в которой содержится большое количество файлов.
Специалисты по данным могут писать и делиться своим кодом с другими. Будь это их собственный код с нуля или расширение пакетов других авторов. Пакеты позволяют специалистам по данным переиспользовать код и распространять его среди остальных.
Пакеты созданы, чтобы контейнировать функции и наборы данных.
Специалист по данным может создать пакет, чтобы упорядочить код, документацию, тесты, наборы данных и так далее, и потом этими пакетами можно делиться с другими людьми.
В интернете в открытом доступе есть десятки тысяч пакетов R. Эти пакеты собраны в центральном репозитории. Вообще есть разные репозитории. Это и CRAN, и Bioconductor, и любимый Github.
Одно хранилище заслуживает отдельного упоминания. Это CRAN. Это сеть серверов, которые хранят большое количество версий кода и документации для R.
Пакет содержит файл с описанием, где нужно указать дату, зависимости, автора и версию пакета, а также другие данные. Файл-описание помогает пользователям получить важную информацию о пакете.
Чтобы загрузить пакет, напечатайте:
library(имя пакета)
Чтобы пользоваться функциональностью пакета, напишите в его имени::название функции.
Например, если мы хотим применить функцию “AdBCDOne” из пакета “carat”, можем сделать следующее:
R Script
Скрипт R — это место, где специалист по данным может писать статистический код. Это текстовый файл с расширением .R , например мы может назвать скрипт tutorial.R .
Можем создать много скриптов в пакете.
В качестве примера, если вы создали два скрипта R:
- blog.R (для блога)
- publication.R (для публикации)
И если вы хотите вызвать функции publication.R в blog.R, то вам стоит пользоваться командой source(“target R script”) . Она импортирует publication.R в blog.R:
Создаём пакет скрипта
Процесс относительно простой. В сущности вот, что нужно сделать:
- Создайте файл описания.
- Создайте R.scripts и добавьте любые датасеты, документацию, тесты, которые должны быть в этом пакете.
- Напишите свои функции в скриптах R.
- Можем применить devtools и roxygen2 , чтобы создать пакеты R с помощью такой команды:
5. Какие бывают типы данных в R ?
Очень важно разобраться в разных типах данных и структурах в R. Так вы сможете пользоваться языком эффективно. В этом разделе я опишу концепции.
Типы данных
Вот базовые типы данных в R:
- символ (character) : может быть таким “abc” или таким “a”
- целочисленный (integer) : например 5L
- числовой (numeric) : например 10.5
- логический (logical) : TRUE или FALSE
- комплексный (complex) : например 5+4i
Ещё можем пользоваться командой typeof(variable) , чтобы определить тип переменной.
Чтобы найти метаданные (атрибуты типа), используйте команду attributes(variable) .
Структуры данных
В R достаточно много структур данных. Привожу самые важные:
- Вектор (vector) : самая важная структура, которая в сущности является набором элементов.
- Матрица (matrix) : похожая на таблицу структура со строками и колонками
- Датафрейм (data frame) : табличная структура для статистических операций
- Списки (lists) : набор, в котором может быть комбинация типов данных.
- Факторы (factors) : для представления категориальных данных.
Я расскажу обо всех этих типах и структурах данных, так что начинаем строить фундамент.
6. Как объявлять переменные?
Как пользоваться r программой
Комментарии
Популярные По порядку
Не удалось загрузить комментарии.
ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ
ТОП-15 книг по Python: от новичка до профессионала
Книги по Python (и связанным с ним специальным темам) на русском языке. Расставлены в порядке возрастания сложности, обобщены указанные читателями преимущества и недостатки.
DeepFake-туториал: создаем собственный дипфейк в DeepFaceLab
Рассказываем о технологии DeepFake и шаг за шагом учимся делать дипфейки в DeepFaceLab – нейросетевой программе, меняющей лица в видеороликах.
Пишем свою нейросеть: пошаговое руководство
Отличный гайд про нейросеть от теории к практике. Вы узнаете из каких элементов состоит ИНС, как она работает и как ее создать самому.
Источник: proglib.io
Структура R
IDE — integrated development environment, программные пакеты, которые облегчают программирование.
RStudio — интегрированная система для программирования в R. Нужно дополнительно устанавливать.
❗️Есть пробная онлайн-версия: https://rstudio.cloud/ — но медленная.
Установка и использование пакетов
install.packages(«readxl») # Один раз на каждом компьютере library(«readxl») # Перед использованием. После каждого перезапуска R. # Кстати, хэштэгом обозначают комментарии, которые не считываются R.
Ключевые структуры R
Объекты
Об R можно думать как об умном калькуляторе.
[1] 10
В верхнем окошке вы видите то, что вводит человек, в нижнем — то, чем отвечает на это компьютер.
[1] в ответе компьютера обозначает порядковый номер значения.
В дополнение к вычислениям, R может хранить в памяти различные данные (в широком смысле) — они называются объектами.
❗️Названия объектов должны начинаться c буквы или точки.
❗️R различает большие и маленькие буквы.
Виды (классы) объектов
Объектами могут быть любые фрагменты информации. Это может быть одно значение, вектор однотипных значений (переменная), список разнотипных значений, таблица, или даже список других объектов. И многое другое. Вид информации, хранящейся в объекте, называется класс объекта.
a) Типы переменных
- числовые numeric для интервальных непрерывных переменных;
- так называемые факторы factor для номинальных и порядковых ( ordered factor ) переменных;
- строчные string или character — для текстовых переменных;
- логические logical , переменные принимающие только значение TRUE или FALSE.
При чтении данных многие функции автоматически определяют тип переменных, но все равно лучше проверять.
numeric
[1] 1.10 2.50 3.23 4.00 5.00
string/character
[1] «cat» «dog» «mouse»
factor (unordered)
[1] horsebean horsebean horsebean Levels: casein horsebean linseed meatmeal soybean sunflower
ordered factor
[1] Primary Primary Levels: Primary < Secondary < Higher
logical
[1] FALSE TRUE TRUE TRUE
b) Структуры хранения данных
- векторы c — для отдельных переменных;
- двухмерные таблицы data.frame — наиболее используемые и привычные таблицы данных;
- матрицы matrix — двухмерная таблица, удобныя для матричных преобразований,
- массивы array — многомерная таблица,
- списки list — может содержать данные разных типов и любые объекты.
векторы c()
[1] 1 2 3
data.frame
var.one var.two 1 1 A 2 2 B 3 3 C
matrix
[,1] [,2] [,3] [,4] [,5] [1,] 1 7 13 19 25 [2,] 2 8 14 20 26 [3,] 3 9 15 21 27 [4,] 4 10 16 22 28 [5,] 5 11 17 23 29 [6,] 6 12 18 24 30
array
, , 1 [,1] [,2] [,3] [,4] [,5] [1,] 1 4 7 10 13 [2,] 2 5 8 11 14 [3,] 3 6 9 12 15 , , 2 [,1] [,2] [,3] [,4] [,5] [1,] 16 19 22 25 28 [2,] 17 20 23 26 29 [3,] 18 21 24 27 30
list
$`можно дать имя одному или всем элементам` [1] 1 2 3 4 5 [[2]] [1] «a» «c» [[3]] [1] «Просто единичная строка»
Операторы
С объектами можно производить различные операции. Типичные операции можно осуществлять с помощью специальных символов — операторов. Создадим два объекта a и b и сложим их значения:
[1] 11
Функции
Функции – это типовые операции, которые, чтобы не прописать заново, можно сохранять.
Весь R работает на функциях.
Например, можно подсчитать сумму, применив функцию sum() к числовому вектору.
some.numbers
[1] 10
mean() вычисляет среднюю, sd() — стандартное отклонение средней.
Другая простейшая функция c() — она объединяет ряд значений в вектор и конвертирует их в один и тот же тип.
c(1, 2, «R», «», 0)
[1] «1» «2» «R» «» «0»
In and Out
В каждой функции есть вводные параметры (аргументы), и ее продукт, результат, или то, что функция возвращает.
Форма
Большинство функций имеет форму:
НАЗВАНИЕ_ФУНКЦИИ(аргумент1 = «умолчание», аргумент2 = «умолчание2», . )
Иногда значение по умолчанию не задано, такие аргументы нужно обязательно указывать — обязательные аргументы. Аргументы, имеющие значение по умолчанию называются необязательными.
У каждого аргумента есть имя .
Количество и имена аргументов в каждой функции свои собственные (но могут быть и одинаковыми).
Пример
Функция subset имеет три обязательных аргумента, у которых нет умолчаний
subset(x, subset, select)
- x — массив, который фильтруем,
- subset — какие строки из массива х нужно оставить,
- select — какие переменные из массива нужно оставить.
А в функции c() [то есть c ombine] нет умолчаний, у аргументов нет имен и количество их не ограничено. Она возвращает вектор, объединяющий все данные ей аргументы.
Результат
Разные функции возвращают разные типы объектов, это может быть одно число, строка, массив данных, список, таблица, график, и так далее. В документации к каждой функции есть разел Value, где указывается, что возвращает функция.
Использование функций
Аргументы
Приписывание значений аргументам возможно только с использованием = .
❗️Если нужно проверить равенство, необходимо использовать == . Например: a == b вернет TRUE или FALSE, a = b не вернет ничего, но создаст (перезапишет) объект а скоровав в него значение объекта b .
Если мы решили использовать значение по умолчанию, можно пропустить аргумент. Можно также пропустить имя аргумента, но тогда нужно вводить аргументы в правильной последовательности.
# Эти строки эквивалентны: subset(x = mydata, subset = age > 65, select = c(«health», «income»)) subset( mydata, age > 65, c(«health», «income»))
Результат
В большинстве случаев результат работы функции нужно сохранять.
# Эта строка сохранит подмассив пожилых респондентов и только две переменных в объект old.respondents: old.respondents 65, c(«health», «income»))
❗️Если не сохранить результат работы функции в объект, вы увидите только часть информации в консоли, а сам результат потеряется.
Если результат сохранен в объект, в консоли обычно ничего не выводится.
Новые слова на языке R (функции):
Источник: maksimrudnev.com