Язык программирования R невероятно популярен. С 10 000 предлагаемых пакетов и его растущей важностью в популярных областях нет сомнений в том, что популярность R растет. По мере роста таких областей, как наука о данных и машинное обучение, следует использование R.

Итак, зачем использовать R? Что вообще такое язык программирования R? Сегодня мы предоставим вводное руководство по языку программирования R, чтобы вы могли начать использовать этот популярный универсальный язык.

Сегодня мы рассмотрим:

  • Краткая история Р.
  • Обзор R
  • Реальное использование R
  • Инструменты, пакеты и синтаксис R
  • Создание вашего первого приложения R
  • Что изучать дальше

Краткая история Р.

Язык программирования R — это реализация языка программирования S, созданная Джоном Чемберсом в Bell Labs.

R был создан Робертом Джентльменом и Россом Ихакой из Оклендского университета, Новая Зеландия. Команда объединила S с семантикой лексической области видимости, чтобы создать R. Проект R был впервые задуман в 1992 году, а затем впервые выпущен в 1995 году. 29 февраля 2000 года была выпущена стабильная бета-версия.

Обзор R

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

Раньше язык S был популярным выбором для исследований в области статистической методологии. Когда R был выпущен, это был способ участия в этой деятельности с открытым исходным кодом, и с тех пор его популярность возросла.

Среда

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

  • Мощное средство обработки и хранения данных
  • Набор операторов, которые можно использовать для вычислений с массивами и, в частности, с матрицами.
  • Большой и интегрированный набор инструментов, используемых для анализа данных.
  • Графические средства для анализа данных и отображения на экране или в печатном виде
  • Надежный, всеобъемлющий и простой язык программирования, включающий условные операторы, циклы, определяемые пользователем рекурсивные функции и средства ввода/вывода.

Термин «среда» намеренно используется для описания R как системы, а не просто языка программирования. R часто используется вместе с другими инструментами анализа данных.

Почему вы должны использовать R?

  • Открытый исходный код и бесплатность: R можно загрузить бесплатно в соответствии с лицензией GNU General Public License. Если вы хотите увидеть, что на самом деле происходит под капотом, вы можете посмотреть исходный код. Кроме того, у вас есть доступ к множеству пакетов R по той же лицензии, которую вы можете использовать. Вы также можете использовать is в коммерческих приложениях.
  • Популярность. R так же популярен, как языки общего назначения, такие как C#, что указывает на повышенный интерес конкретно к языку программирования R, а также на общий рост в таких областях, как наука о данных и машинное обучение.
  • Работает на всех платформах. Вы можете найти дистрибутивы R на всех популярных платформах: Windows, Linux и Mac. Кроме того, код R, написанный для одной платформы, можно легко перевести на другую платформу практически без проблем. Межплатформенная совместимость R невероятно важна в современном компьютерном мире, как это видно из стремления Microsoft сделать свою платформу .NET доступной на всех платформах.
  • Рынок вакансий. Специалисты по данным в США получают в среднем более 100 000 долларов США. Многие роли специалиста по данным требуют от вас знания языка программирования R. Хотя знание R не даст вам работу автоматически, поскольку специалисты по данным должны использовать все виды инструментов для своей работы, опыт программирования R поможет вам выделиться среди других соискателей.
  • Принятие технических гигантов. Если технологические гиганты внедряют язык программирования, это признак его потенциала и роста. Из-за простоты и мощности R компании принимают обдуманные решения об использовании языка программирования R и среды. Например, Twitter использует R для мониторинга взаимодействия с пользователем, Ford — для анализа социальных сетей, а New York Times — для инфографики.

Трудно ли выучить R?

R не сложнее любого другого языка, особенно если у вас уже есть некоторый опыт работы с более старыми языками, такими как C или C++.

Много лет назад большинство сказали бы, что R — сложный язык для изучения. Он был не только запутанным, но и плохо структурированным. Чтобы решить эти проблемы, Хэдли Уикхэм создал набор пакетов под названием tidyverse, которые сделали работу с данными более интуитивной.

Теперь лучшие алгоритмы машинного обучения можно легко реализовать с помощью R. От пакетов до Keras, от TensorFlow до Xgboost — вы получаете довольно мощную функциональность при использовании языка R.

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

Реальное использование R

Итак, каковы основные области применения R в области вычислительной техники? Р используется для:

  • Статистические выводы
  • Анализ данных
  • Машинное обучение
  • Выполнение научных симуляций
  • Исследование операций

Статистические вычисления

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

Наука о данных

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

Машинное обучение (МО)

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

Пример из реальной жизни

Всего за три строки кода вы сможете сгенерировать 10 000 чисел в случайном порядке. В этом сила R. Если мы напишем этот код:

n <- floor(rnorm(10000, 500, 100))
t <- table(n)
barplot(t)

В правом нижнем углу вы сможете увидеть этот график:

  • Первая строка кода генерирует список из 10 000 случайных чисел в нормальном шаблоне распределения, так что среднее значение этих чисел равно 500, а стандартное отклонение равно 100. Функция floor берет все числа в списке и удаляет десятичную точку.
  • Для второй строки кода табличная функция берет 10 000 чисел и подсчитывает частоту каждого из них.
  • В третьей строке кода функция гистограммы берет эту таблицу частот и создает гистограмму из данных.

Инструменты, пакеты и синтаксис R

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

Чтобы добиться наилучших результатов в этом разделе, полезно знать базовые термины программирования. Если вы новичок, я рекомендую прочитать Руководство по программированию для начинающих, прежде чем продолжить здесь.

Рабочая среда

Рабочее пространство — это ваша текущая рабочая среда R, которая включает в себя созданные пользователем объекты, такие как матрицы, векторы, фреймы данных, списки и функции. После сеанса вы можете сохранить изображение своего текущего рабочего пространства, которое будет автоматически перезагружено при повторном запуске R.

Графический пользовательский интерфейс

Помимо встроенной консоли R, RStudio является самым популярным редактором R, который может взаимодействовать с R с платформами Windows, MacOS и Linux.

Операторы в R

Операторы R похожи на другие языки программирования. Некоторые арифметические операторы включают:

  • + - дополнение
  • - - вычитание
  • * - умножение
  • / - деление
  • ^ - возведение в степень

К логическим операторам относятся:

  • > - больше, чем
  • >= - больше или равно
  • == - точно равно
  • != - не равно

Типы данных

R имеет пять основных типов данных. В языке R, если вы измените данные в переменной, предыдущая информация будет удалена. Таким образом, каждому типу данных требуется уникальное имя.

Создание переменных

Переменные используются для хранения данных. Их значение можно изменять, использовать и манипулировать в соответствии с потребностями. Уникальное имя, присвоенное переменной (также функции или объекту), называется identifier.

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

Чтобы объявить переменную, нам нужно присвоить ей идентификатор. Используйте оператор присваивания <- для создания новой переменной.

# An example of computing the mean with variables

mydata$sum <- mydata$x1 + mydata$x2
mydata$mean <- (mydata$x1 + mydata$x2)/2

Методы в R

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

Список переменных

Мы можем проверить все переменные, которые были созданы в рабочей области, используя ключевое слово ls(). Проверьте это ниже.

myRealNumeric <- 10
myDecimalNumeric <- 10.0
myCharacter <- "10"
myBoolean <- TRUE
myInteger <- 0:10
myComplex <- 5i

cat("Variables in the current directory: \n")
ls() # returns all the variables created in the workspace alphabetically
cat("\n")
//output
Variables in the current directory: 
[1] "myBoolean"        "myCharacter"      "myComplex"        "myDecimalNumeric"
[5] "myInteger"        "myRealNumeric"    "r"

Удаление переменных

Мы можем удалить определенную переменную из рабочей области. Ключевое слово rm() может помочь нам навсегда удалить один или несколько объектов из рабочей области.

myRealNumeric <- 10
myDecimalNumeric <- 10.0
myCharacter <- "10"
myBoolean <- TRUE
myInteger <- 0:10
myComplex <- 5i

cat("Variables in the current directory: \n")
ls() # returns all the variables created in the workspace
cat("\n")

cat("Deleting myRealNumeric and myDecimalNumeric \n\n")

rm(myRealNumeric, myDecimalNumeric) # delete the two mentioned variables

cat("Variables in the current directory, now: \n")
ls() # returns all the variables created in the workspace
     # myRealNumeric, myDecimalNumeric are now deleted
cat("\n")
//output
Variables in the current directory: 
[1] "myBoolean"        "myCharacter"      "myComplex"        "myDecimalNumeric"
[5] "myInteger"        "myRealNumeric"    "r"   

Deleting myRealNumeric and myDecimalNumeric 

Variables in the current directory, now: 
[1] "myBoolean"   "myCharacter" "myComplex"   "myInteger"   "r"            

Функции

По сути, все в R делается с помощью функций. Функция — это блок кода, написанный для конкретной задачи или серии задач. Он может принимать параметры и может возвращать значение, если оно определено. Функция в R определена ниже. Код между фигурными скобками — это тело функции.

function ( arglist ) {body}

Строки: print() и cat()

В R мы можем выражать строки символов, заключая текст в двойные или одинарные кавычки. Для записи строк мы используем синтаксис cat(). Мы также можем найти длину строки с помощью метода nchar().

cat("Hello world\n")
nchar("Hello World")
//output
Hello world
[1] 11

Вы заметите, что наша строка заканчивается на /n. Последовательность, начинающаяся с \ в строке, называется экранированной последовательностью. Это позволяет нам включать специальные символы в наши строки. Общие escape-последовательности:

Мы также можем использовать метод print(), который может показаться вам знакомым, если вы работаете с другими языками. Между ними есть небольшая разница:

print() возвращает вектор символов. Вектор — это объект в языке R. cat() возвращает объект NULL. Если вы хотите узнать об этом больше, изучите атомарные типы в R.

Но на самом базовом уровне: cat() печатает аргументы без кавычек, а print() их отображает.

Векторы

Вектор — это базовая структура данных в R. Она содержит элементы одного типа по каждому индексу. Ключевое слово vector() используется для создания вектора фиксированного типа и фиксированной длины. Типы данных могут быть:

  • Логический
  • Целое число
  • Числовой
  • Характер
  • Сложный

Тип вектора можно проверить с помощью typeof(), а количество элементов в векторе можно проверить с помощью length().

vector ("numeric", 5) # numeric vector with O at every index

vector ("complex", 5) # complex vector with O+0i at every index

vector ("logical", 5) # logical vector with FALSE at every index

vector ("character", 5) # character vector with "" at every index
//output
[1] 0 0 0 0 0
[1] 0+0i 0+0i 0+0i 0+0i 0+0i
[1] FALSE FALSE FALSE FALSE FALSE
[1] "" "" "" "" ""

Импорт данных

Импортировать данные в R относительно просто, так как R предлагает множество вариантов импорта CSV-файла. Это важная особенность для науки о данных.

Ниже приведен пример импорта файла CSV в ваш проект R.

# first row contains variable names, comma is separator
# assign the variable id to row names
# note the / instead of \ on mswindows systems

mydata <- read.table("c:/mydata.csv", header=TRUE,
   sep=",", row.names="id")

Построение в R

В R графика создается интерактивно, как показано ниже.

# Creating a Graph
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
title("Regression of MPG on Weight")

Функция plot() позволяет открыть окно графика, в котором будет отображаться зависимость веса от количества миль на галлон. Следующая строка добавляет на график линию регрессии. Наконец, последняя строка добавляет завершающий заголовок.

Пакеты

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

.libPaths() # get library location
library()   # see all packages installed
search()    # see packages currently loaded

Получать помощь

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

help.start()   # general help
help(foo)      # help about function foo
?foo           # same thing
apropos("foo") # list all functions containing string foo
example(foo)   # show an example of function foo

Создание вашего первого проекта R: Hello World

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

Загрузка R

На Mac:

  1. Перейти на сайт Р
  2. Нажмите на ссылку CRAN
  3. Выберите зеркало
  4. Нажмите «Загрузить R для (Mac) OS X».
  5. Загрузите последний двоичный файл pkg
  6. Запустите файл и следуйте инструкциям по установке R.

В Windows:

  1. Перейти на сайт Р
  2. Нажмите на ссылку CRAN
  3. Выберите зеркало
  4. Нажмите «Загрузить R для Windows».
  5. Нажмите на ссылку, которая загружает базовый дистрибутив
  6. Запустите файл и следуйте инструкциям по установке R.

Установка RStudio

Как указано выше, RStudio — самая популярная IDE для запуска программ R. Скачать его можно здесь для Windows, Linux и Mac OS.

Ваше первое приложение

R известен тем, что может создавать приложения с небольшим количеством кода. Давайте попробуем два проекта, начиная с Hello World. Попробуйте сами, прежде чем проверять решение. Помните: вы можете использовать cat или print().

Решение:

cat("Hello world\n")
#or 
print("Hello World")

Как видите, R довольно прост! В самом деле, давайте попробуем другую программу.

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

  • Наши входные данные — это testVariable, содержащий тестируемую переменную.
  • На выходе мы получаем высокоуровневый и низкоуровневый типы данных этой переменной.
#input
1.9
# output
numeric
double

Давайте пройдемся по нему шаг за шагом. Во-первых, мы должны определить нашу переменную.

testVariable <- 1.9

Теперь, чтобы найти высокоуровневый тип данных данного testVariable, мы используем ключевое слово class() с заданным testVariable. Мы передаем это методу cat() для печати, а также добавляем \n для новой строки.

cat(class(testVariable), "\n") 
# high level data type

Класс похож на план, который помогает создать объект и содержит его переменную-член вместе с атрибутами.

Теперь нам нужно напечатать низкоуровневый тип данных testVariable, и для этого мы используем typeof() с testVariable.

cat(typeof(testVariable), "\n") 
# low level of variable

Давайте соберем все вместе и запустим наш код!

Решение:

testVariable <- 1.9
cat(class(testVariable), "\n") #  high level data type
cat(typeof(testVariable), "\n") # low level of variable

Что изучать дальше

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

  • Списки и массивы
  • Матрицы и фреймы данных
  • Операторы и обозначения
  • Условные операторы
  • Обработка исключений

Чтобы вы начали изучать эти сложные темы, Educative создал бесплатный курс Изучение R с нуля. Вы будете использовать практические занятия и примеры из реальной жизни, чтобы освоить R с нуля. К концу вы будете на пути к тому, чтобы стать специалистом по данным!

Удачного обучения!

Продолжить чтение о науке о данных и кодировании на Educative

Начать обсуждение

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