Введение

Первоначально Bell Labs задумала идею языка S в середине 1970-х годов для решения задач анализа данных и статистики. Целью проекта внедрения было проведение статистического анализа своей корпорации с использованием библиотек языка Fortran. Изобретение языка S не включало функций, необходимых для статистических вычислений. В конце 1980-х акт перестройки исходного кода на языке C заново изобрел язык S. Последующие выпуски версий на языке S привели к расширенным функциям R в конце 1990-х годов. Язык S последовал за чередой приобретений и слияний Alcatel-Lucent, Bell Labs, Insightful Corp и TIBCO. В самых последних версиях, таких как S-PLUS, появилось множество новых функций, в основном построенных с использованием моделей графического пользовательского интерфейса, отошедших от систем, основанных на командной строке. Таким образом, фундаментальные строительные блоки S возникли из анализа данных и статистических вычислений, а не из-за необходимости изобретения классического языка программирования, что сделало язык S на десятилетия впереди других для статистических вычислений (Peng, 2015).

В начале 1980-х появление компьютерных машин побудило Массачусетский технологический институт создать совместный проект по предоставлению бесплатного программного обеспечения широкой публике, которая может дополнительно улучшить и обогатить исходный код программного приложения в рамках распространения Стандартной общественной лицензии (GPL). Однако большинство версий языка S были коммерческими дистрибутивами, включая S-PLUS. В начале 1990-х изобретение языка R в Окленде привело к созданию распространяемого программного обеспечения с открытым исходным кодом под лицензией GPL с усовершенствованным графическим интерфейсом и статистическими вычислениями. Хотя синтаксис S и R выглядит очень похожим, они совершенно разные в отношении схем, и R может работать на поразительном количестве операционных систем R, которые постоянно улучшаются с улучшениями в открытом исходном коде. Как только платформа R одобрит изменения, внесенные в исходную систему, появится новый выпуск, доступный для распространения. В отличие от коммерческих дистрибутивов, которые требуют значительных выпусков для разных сезонов, различные жизненные циклы устранения ошибок в языке программирования R помогли общественности с расширенными функциями и немедленным устранением ошибок. Сложность языка R со статистическими графиками намного выше, чем у любого другого языка статистических вычислений (Peng, 2015).

Статистические аспекты R.

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

Описательная статистика может поддерживать различные функции и пакеты R с помощью sapply() с помощью пакетов Hmisc, pastecs и psych (Quick-R, n.d.).

R также поддерживает множество функций вероятности с распределениями вероятностей бета, биномиальное, Коши, хи-квадрат, экспоненциальное, знаковый ранг Уилкоксона, гамма, гипергеометрическое, логнормальное и геометрическое (Kabacoff, 2011).
R также поддерживает расширенную визуализацию, отображающую гистограммы, круговые диаграммы, гистограммы, диаграммы ядерной плотности, ящичные диаграммы, параллельные ящичные диаграммы, диаграммы скрипки и точечные диаграммы для данных, проанализированных с помощью статистических функций (Kabacoff, 2011).

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

R также обеспечивает регрессионную диагностику данных. Например, пакет cars предоставляет несколько встроенных функций для выполнения регрессионной диагностики, таких как avPlots(), ncvTest(), qqPlot(), crPlots(), outLierTest(), scatterplotMatrix(), durbinWatsonTest() и vif(). Мультиколлинеарность помогает измерять множественные результаты регрессионных данных (Kabacoff, 2011).
Статистические аспекты R либо со встроенными наборами данных пакета по умолчанию, либо с внешними наборами данных предназначены для создания прогностических моделей данных на основе исторических закономерностей тенденций данных (Джеймс, Виттен, Хасти и Тибширани, 2013).

Несколько таких статистических методов помогают множеству прикладных областей, таких как научная, математическая, финансовая и деловая сфера. Немногие из таких статистических моделей включают векторные методы, создание моделей регрессии и методы разреженной регрессии (James, Witten, Hastie, & Tibshirani, 2013).

Статистические аспекты могут быть классифицированы как контролируемые и неконтролируемые методы обучения. Статистический метод R с учителем может принимать несколько входных переменных и создавать выходные данные для создания футуристической прогнозной аналитики и моделей оценки. Неконтролируемый статистический метод может аналогичным образом работать с несколькими входными данными. Тем не менее, нет конкретного контролируемого вывода. Такие неконтролируемые результаты дают представление о взаимосвязях и корреляции компонентов данных (James, Witten, Hastie, & Tibshirani, 2013).
R обеспечивает поддержку простых и множественных методов линейной регрессии на основе одной или нескольких переменных-предикторов. Например, если корпорация получает доходы через Интернет, радио и газеты, простая регрессионная модель с одним предиктором может не обеспечить углубленного анализа среды для прогнозирования доходов. В случае нескольких моделей линейной регрессии преимуществом является наличие нескольких переменных-предикторов с оценками коэффициентов регрессии (James, Witten, Hastie, & Tibshirani, 2013).

R может выполнять дисперсионный анализ с зависимыми и независимыми переменными с помощью однофакторного дисперсионного анализа, двустороннего факторного дисперсионного анализа, однофакторного дисперсионного анализа с помощью одной ковариации, двухфакторного факторного дисперсионного анализа с помощью пары ковариат, надежного MANOVA и анализа. многомерного MANOVA (Kabacoff, 2011).

Возможности программирования R

Программирование R можно запустить в R Console или RStudio, написав R Script. Входные данные должны иметь полное выражение для очистки синтаксиса команды. Все комментарии на языке R можно поддерживать с помощью символа хэштега #. Язык R выполняет оценку входных данных и возвращает набор результатов операции (Пэн, 2015).

Элементы данных R имеют пять молекулярных компонентов для определения типа данных.

i.Character, который хранит и представляет текст или строку типа данных

ii.Number представляет реальные числовые типы данных

iii.Целое число

iv.Комплексный тип данных

v.Boolean тип данных, который представляет логический результат, такой как истинное или ложное значение типа данных (Peng, 2015).

Атрибуты и функции программирования R

Программирование R представляет состояние метаданных каждого объекта R. Эти объекты метаданных могут быть основой описательной модели объекта. Атрибут описывает элементы, охватывающие каждый столбец, такие как массивы или имена. Атрибут объекта R можно получить с помощью функции attribute(). Векторную функцию c() можно использовать для объединения нескольких объектов. Существует несколько типов векторов, таких как матрицы, факторы и списки. Еще одна функция программирования R — фреймы данных. Целью фреймов данных является извлечение данных из файлов .csv с функцией чтения. Его также можно использовать для извлечения табличных данных с помощью функции table(). Функции даты и времени являются частью классов POSIXlt и POSIXt языка R (Peng, 2015).

Математические функции R

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

Функция программирования R для поддержки функций записи и чтения

Функции чтения

R может читать данные из текстовых файлов с помощью функции read.csv
R имеет специальную функцию readLines для чтения определенных строк текстового файла
Source и dget — это несколько других функций чтения для чтения исходный код R
Функция load может извлекать сохраненную работу
R может читать отдельные объекты R, доступные в двоичном коде, с помощью функции десериализации (Peng, 2015).

Запись функций

R может записывать данные в текстовые файлы с помощью функции write.table
R может записывать данные, добавляя каждую строку в текстовый файл с помощью функции writeLines
Dump и dput — это другие функции для сбора текстовых данных R. объекты
Сжатые данные в двоичной форме можно сохранить с помощью функции сохранения
Данные можно записать либо в соединение, либо в файл с помощью функции сериализации (Peng, 2015).

Архитектура памяти R

Учитывая, что R не является базой данных для хранения данных в традиционной дисковой системе баз данных для операций INSERT, DELETE и UPDATE, R хранит все данные в основной памяти, работая с архитектурой in-memory, аналогичной любой другой базе данных in-memory, кроме того, что он оперирует данными из файлов. Приблизительно для набора данных с полутора миллионами записей и 100+ столбцов потребуется оперативная память объемом более 1,3 ГБ. Хотя ЦП имеет память более 1,3 ГБ, ее доступность полностью зависит от потребления памяти приложениями во время выполнения в каждой операционной системе. Машина, на которой работает несколько операционных систем в Mac OS X, будет потреблять больше памяти для каждой операционной системы по отдельности, чем работающая в операционной системе Windows. Лучший способ обеспечить запуск большого набора данных на R — оптимизировать количество приложений, работающих на ЦП (Peng, 2015).

Интеграция внешних соединений для интерфейсов

R может подключаться к любому внешнему текстовому файлу в различных форматах с файловой функцией, включая файлы текстовых данных с разделителями, файл Excel, XML, формат обмена данными, DBF, двоичные файлы, файлы изображений и файлы SPSS.
R может подключаться к ряду источников баз данных с помощью R Open Database Connectivity (RODBC), таких как SAP HANA, Oracle, PostgreSQL, MySQL, SQLite и IBM DB2 в нескольких операционных системах. R можно вызывать из ряда языков программирования, таких как Java, C, C++, Python (CRAN-R, n.d.).

  • R может подключиться к сетевому сокету, выполнив программирование сокета CRAN-R, n.d.).
  • R может подключаться к различным источникам файлов в сжатых форматах, таких как gzip и bzip2, с помощью функций gzfile и bzfile.
  • R может подключаться к определенной гиперссылке веб-страницы для сбора данных с помощью функции URL (Peng, 2015).

Пакеты

R поставляется с пакетами по умолчанию, которые фильтруются и доставляются платформой R. Эти пакеты помогают быстро разрабатывать R для выполнения статистических вычислений в конкретном пакете. Большинство пакетов, поставляемых в R, написаны на C++. Не все пакеты по умолчанию поставляются с установкой R. Любые конкретные пакеты можно установить с помощью функции install.packages из CRAN. После проверки завершения установки пакета его необходимо загрузить в текущий сеанс R с определенной библиотекой операций (Peng, 2015).

Структуры управления программированием R

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

Оператор if-else для создания вложенного цикла условий для проверки и выполнения нескольких условий
Цикл может быть введен в конкретную операцию, указав количество раз, которое блок кодирования условия должен выполняться с оператором цикла for
R также имеет управляющую структуру для выполнения только до тех пор, пока условие не станет истинным с оператором while
Другая управляющая структура — повтор. Этот конкретный оператор позволяет циклу выполняться непрерывно и завершаться с помощью определенного оператора break при выполнении условия
Оператор break обычно используется для выхода из цикла для определенного условия
Чтобы избежать повторения определенного условия данных , можно использовать следующий оператор
For — это еще одна условная структура для циклического выполнения условия для диапазона данных. Его можно реализовать как с вложенными циклами, так и с несколькими условиями for (Пэн, 2015).

Отладка R

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

R для машинного обучения

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

Возможности программирования R

Список функций программирования R

  • Среда программирования R — R Console и RStudio
  • Типы данных R — символы, числа, целые числа, комплексные числа и логические типы данных.
  • Программирование R содержит атрибуты и функции — например, векторы, атрибуты, матрицы, факторы, фреймы данных, таблицы и списки.
  • Математические функции в R — логарифмы, функции исчисления, генерация случайных чисел, округление, потолок, пол, усечение, абсолютное значение, округление, минимальные и максимальные функции для нахождения наименьших и наибольших целых чисел и другие функции, такие как обработка сигналов
  • R Функции чтения — .csv, readLines, source, dget, load и unserialize
  • R Функции записи — write.Table, writeLines, Dump, dput, save и сериализация
  • In-memory архитектура R — данные загружаются в RAM — физическая память
  • Внешние подключения к файлам — текстовые файлы, электронные таблицы Excel, текстовые файлы с разделителями табуляции, файлы .csv, DIF, DBF, двоичные файлы, файлы изображений, файлы gzip, bzip2 и SPSS.
  • Возможность подключения R к базам данных — IBM DB2, сервер MSSQL, MySQL, PostgreSQL, Oracle и SAP HANA.
  • Возможность подключения R к языкам программирования — R можно вызывать из Java, C, C++, VC++ и Python.
  • Программирование сетевых сокетов R — программирование сокетов можно выполнять в R.
  • Возможность подключения к веб-странице R — R может подключаться к URL-адресам и собирать данные с веб-страницы.

R обрабатывает петабайты данных

R может помочь в обработке колоссальных объемов больших наборов данных, включая высокопроизводительные вычисления для петабайт данных. Большие наборы данных могут обрабатываться как с помощью механизма, управляемого пользователем, так и с помощью системных методов распараллеливания, выделяющих объемную оперативную память. Функции программирования R также помогают разбивать данные на несколько фрагментов с помощью методов MapReduce, которые являются скорее тактикой, чем архитектурными стратегиями для обработки больших объемов больших данных. R предоставляет специальные пакеты для таких больших наборов данных, как bigmemory и ff, или прямые внешние подключения к множеству баз данных. В случае подключения к Hadoop распараллеливание можно осуществить через пакеты HadoopStreaming и Rhipe. Есть еще несколько пакетов, таких как bigtabulate, bigvideo, bigpharma, biganalytics и synchronicity, для обработки огромных объемов данных. Каждый пакет предоставляет определенные матричные функции для обработки гигантских объемов данных (Rosario, 2010).

Чтобы преодолеть ограничение R, выполняющее данные в основной памяти на одном ядре независимо от количества доступных ядер, используется пакет MapReduce, который представляет собой скорее парадигму абстрактного архитектурного распараллеливания, чем аппаратное распараллеливание по количеству ядер. Данные разбиваются на несколько фрагментов, каждый из которых производит свой собственный вывод и в конечном итоге объединяет наборы результатов отдельных выходных данных в один выходной файл. Пакет HadoopStreaming используется для обработки карты и сокращения пакетных заданий, написанных на любом совместимом языке программирования в Hadoop (Rosario, 2010). 4 января 2016 г. корпорация Майкрософт выпустила коммерческий дистрибутив сервера R для множества платформ, таких как Hadoop с Red Hat Linux, Teradata и SUSE Linux, заново изобретая R для обработки больших наборов данных (Foley, 2016).

R объединяет большие данные и идеальную интеграцию

В современном мире большинство корпораций используют большие данные, чтобы получить конкурентное преимущество перед другими предприятиями либо в той же области, либо для ускорения своего ежегодного роста за счет связанной революции и конвергенции IoT и больших данных. Аналитика Р. Аналитика R может помочь корпорациям укротить и обработать свои данные. Алгоритмы, основанные на поразительном количестве больших данных, могут предоставить более точную и точную информацию, чем выполнение алгоритмов на меньшем наборе данных, который находится в системах управления структурированными реляционными базами данных (RDBMS). Корпорации, которые могут применять такие алгоритмы, могут захватить основную долю рынка в отрасли. Рост алгоритмической экономики при использовании R помог корпорациям превратить необработанные данные в парадоксальные идеи. Стандартные встроенные алгоритмы, предоставляемые классическими системами баз данных, не могут обеспечить более глубокое понимание данных. R Analytics может выполнять статистический анализ с помощью количественных методов, чтобы подпитывать организацию инновациями и исследовательским анализом данных. Таким образом, R обеспечивает управление в памяти и возможность подключаться к множеству баз данных и языков программирования, выполнять методы MapReduce и собирать данные с платформы с открытым исходным кодом Hadoop или из коммерческих дистрибутивов, таких как платформы Cloudera, MapR и Hortonworks Hadoop. Аналитика R лучше всего подходит для аналитики больших данных, поскольку R может выполнять аналитику в файле или в базе данных с использованием количественных методов мирового класса (Revolution Analytics, n.d.).

использованная литература

CRAN-R (без даты). Импорт/экспорт данных R. Получено 5 января 2016 г. с https://cran.r-project.org/doc/manuals/r-devel/R-data.html#Imports.

Фоули, MJ (2016). Microsoft выпускает линейку R Server для анализа больших данных. Получено 5 января 2016 г. с http://www.zdnet.com/article/microsoft-rolls-out-its-r-server-big-data-analytics-line-up/

Хотхорн, Т. (2015). Представление задач CRAN: машинное обучение и статистическое обучение. Получено 5 января 2016 г. с https://cran.r-project.org/web/views/MachineLearning.html.

Джеймс Г., Виттен Д., Хасти Т. и Тибширани Р. (2013). Введение в статистическое обучение: с приложениями в R (тексты Springer по статистике) (5-е изд.). Нью-Йорк:

Кабакофф, Р. (2011). R в действии (1-е изд.). Нью-Йорк: Публикации Мэннинга.

Пэн, Р. Д. (2015). R-программирование для науки о данных. Получено 3 января 2016 г. с https://www.cs.upc.edu/~robert/teaching/estadistica/rprogramming.pdf.

Quick-R (без даты). Описательная статистика. Получено 5 января 2016 г. с http://www.statmethods.net/stATS/descriptives.html.

Аналитика революции (nd). Расширенная аналитика больших данных с помощью R и Hadoop. Получено 5 января 2016 г. с http://www.revolutionanalytics.com/whitepaper/advanced-big-data-analytics-r-and-hadoop.

Революционная аналитика (2013 г.). Современная архитектура данных для прогнозной аналитики с Hortonworks и Revolution Analytics. Получено 31 августа 2016 г. с http://www.slideshare.net/RevolutionAnalytics/modern-data-architecture-for-predictive-analytics-hortonworks-and-revolution-analytics.

Росарио, Р. Р. (2010). Доведение R до предела, часть II, работа с большими наборами данных. Получено 5 января 2016 г. с сайта http://www.slideshare.net/bytemining/r-hpc.