Если вы осваиваете Python и встречали на своем пути R, то могли задуматься: стоит ли учить и его? Получится ли дополнить им свой стек “в прикуску”? Давайте подробнее рассмотрим, для каких проектов подойдет язык и есть ли вообще смысл тратить на него время.
R был специально разработан для статистического анализа и визуализации данных (dataviz). В этих сферах и Python вполне применим, однако R – более удачный выбор по ряду причин:
Для R создано большое количество библиотек и пакетов. Например ggplot2, dplyr, Leaflet, simplevis, которые делают его мощным инструментом для визуализации и обработки данных.
Интересное представление распределений известного датасета ирисов на ggplot2
R достаточно популярен среди статистиков и исследователей данных. Сообщество насчитывает примерно 2 миллиона человек.
Такой на первый взгляд незначительный нюанс значит очень много, когда вы окунаетесь в многочасовой дебаггинг. Треды на тех жe StackExchange / StackOverflow заполнены ответами на самые заковыристые вопросы из сфер статистического анализа, что позволяет буквально строить свою карьеру на “отработанных” граблях предшественников.
(Но для сравнения у Python 8,2 миллиона пользователей — и сообщество там активнее).
R еще медленнее, чем Python: намеренно возьмем цикл for, который, как правило, замедляет код, и подсчитаем скорость обработки списка. Конвертируем этот код в R и запустим на онлайн-IDE Programiz.
Кстати, если вы затрудняетесь с выбором онлайн-среды разработки, почитайте мою статью с полным разбором некоторых популярных веб-сред.
Python-версия скрипта
R-версия скрипта
Выходит, что даже на таких простых вещах R уже показывает отставание – 0.000012 против 0.02779651 секунд, то есть в 2300+ раз медленнее.
На мой взгляд, языки примерно одинаковы по лаконичности и читаемости:
Разработчик Форсайт АО «Гринатом», Москва, можно удалённо, По итогам собеседования tproger.ru Вакансии на tproger.ru
Python:
from datetime import datetime start_time = datetime.now() lst = [‘lorem’, ‘ipsum’, ‘dolor’, ‘sit’, ‘amen’] i = 0 while i < len(lst): lst += lst i += 1 end_time = datetime.now() duration = end_time — start_time print(duration)
R:
start_time <- Sys.time() lst <- c(«lorem», «ipsum», «dolor», «sit», «amen») i <- 0 while (i < length(lst)) { lst <- paste(lst, lst, sep = «») i <- i + 1 } end_time <- Sys.time() duration <- end_time — start_time print(duration)
Внимательные уже заметили, что аналога модуля datetime подключать в R-версии не потребовалось. Повторюсь: в статанализе, статистическом обучении довольно много специфических нюансов, которые создатели языка внедрили в ядро R, без необходимости подключать сторонние библиотеки. Это означает еще и однообразность синтаксиса.
В случае, если вы выбрали стать веб-разработчиком, дата-сайентистом, дата-аналитиком или дата-инженером, R вы встретите в небольшом количестве вакансий, он пригодится в разве что для расширения кругозора. Однако если вы планируете строить академическую карьеру, повлиять на науки статистики, теории вероятности и смежных направлений, R подойдет. На этом языке учат лучшие факультеты СПбГУ, МФТИ и других культовых университетов страны.
Более того, его можно использовать в ВМЕСТЕ с Python: один язык для подготовки данных и очистки, другой – для визуализации.
Какой язык был у вас первым?
Написать свой вариант
Применение
R был специально разработан для статистического анализа и визуализации данных (dataviz). В этих сферах и Python вполне применим, однако R – более удачный выбор по ряду причин:
- Встроенные компоненты упрощают работу: вам не потребуется тратить время на освоение документации и бесконечные новые методы и аргументы к ним.
- R, хоть и не предназначен для работы с большими данными, позволяет быстрее собирать прототипы и обнаруживать инсайты.
Библиотеки и пакеты
Для R создано большое количество библиотек и пакетов. Например ggplot2, dplyr, Leaflet, simplevis, которые делают его мощным инструментом для визуализации и обработки данных.
Интересное представление распределений известного датасета ирисов на ggplot2
Сообщество
R достаточно популярен среди статистиков и исследователей данных. Сообщество насчитывает примерно 2 миллиона человек.
Такой на первый взгляд незначительный нюанс значит очень много, когда вы окунаетесь в многочасовой дебаггинг. Треды на тех жe StackExchange / StackOverflow заполнены ответами на самые заковыристые вопросы из сфер статистического анализа, что позволяет буквально строить свою карьеру на “отработанных” граблях предшественников.
(Но для сравнения у Python 8,2 миллиона пользователей — и сообщество там активнее).
Производительность
R еще медленнее, чем Python: намеренно возьмем цикл for, который, как правило, замедляет код, и подсчитаем скорость обработки списка. Конвертируем этот код в R и запустим на онлайн-IDE Programiz.
Кстати, если вы затрудняетесь с выбором онлайн-среды разработки, почитайте мою статью с полным разбором некоторых популярных веб-сред.
Python-версия скрипта
R-версия скрипта
Выходит, что даже на таких простых вещах R уже показывает отставание – 0.000012 против 0.02779651 секунд, то есть в 2300+ раз медленнее.
Синтаксис
На мой взгляд, языки примерно одинаковы по лаконичности и читаемости:
Разработчик Форсайт АО «Гринатом», Москва, можно удалённо, По итогам собеседования tproger.ru Вакансии на tproger.ru
Python:
from datetime import datetime start_time = datetime.now() lst = [‘lorem’, ‘ipsum’, ‘dolor’, ‘sit’, ‘amen’] i = 0 while i < len(lst): lst += lst i += 1 end_time = datetime.now() duration = end_time — start_time print(duration)
R:
start_time <- Sys.time() lst <- c(«lorem», «ipsum», «dolor», «sit», «amen») i <- 0 while (i < length(lst)) { lst <- paste(lst, lst, sep = «») i <- i + 1 } end_time <- Sys.time() duration <- end_time — start_time print(duration)
Внимательные уже заметили, что аналога модуля datetime подключать в R-версии не потребовалось. Повторюсь: в статанализе, статистическом обучении довольно много специфических нюансов, которые создатели языка внедрили в ядро R, без необходимости подключать сторонние библиотеки. Это означает еще и однообразность синтаксиса.
Заключение
В случае, если вы выбрали стать веб-разработчиком, дата-сайентистом, дата-аналитиком или дата-инженером, R вы встретите в небольшом количестве вакансий, он пригодится в разве что для расширения кругозора. Однако если вы планируете строить академическую карьеру, повлиять на науки статистики, теории вероятности и смежных направлений, R подойдет. На этом языке учат лучшие факультеты СПбГУ, МФТИ и других культовых университетов страны.
Более того, его можно использовать в ВМЕСТЕ с Python: один язык для подготовки данных и очистки, другой – для визуализации.
Какой язык был у вас первым?
- Python
- R
- Другой язык
- Хочу увидеть результат
Написать свой вариант