Написать пост

Нужно ли питонисту учить R

Аватарка пользователя Елена Капаца

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

Обложка поста Нужно ли питонисту учить R

Если вы осваиваете Python и встречали на своем пути R, то могли задуматься: стоит ли учить и его? Получится ли дополнить им свой стек “в прикуску”? Давайте подробнее рассмотрим, для каких проектов подойдет язык и есть ли вообще смысл тратить на него время.

Нужно ли питонисту учить R 1

Применение

R был специально разработан для статистического анализа и визуализации данных (dataviz). В этих сферах и Python вполне применим, однако R – более удачный выбор по ряду причин: 

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

Библиотеки и пакеты

Для R создано большое количество библиотек и пакетов. Например ggplot2, dplyr,  Leaflet, simplevis, которые делают его мощным инструментом для визуализации и обработки данных.

Нужно ли питонисту учить R 2
Интересное представление распределений известного датасета ирисов на ggplot2

Сообщество

R достаточно популярен среди статистиков и исследователей данных. Сообщество насчитывает примерно 2 миллиона человек. 

Такой на первый взгляд незначительный нюанс значит очень много, когда вы окунаетесь в многочасовой дебаггинг. Треды на тех жe StackExchange / StackOverflow заполнены ответами на самые заковыристые вопросы из сфер статистического анализа, что позволяет буквально строить свою карьеру на “отработанных” граблях предшественников.

(Но для сравнения у Python 8,2 миллиона пользователей — и сообщество там активнее).

Производительность

R еще медленнее, чем Python: намеренно возьмем цикл for, который, как правило, замедляет код, и подсчитаем скорость обработки списка. Конвертируем этот код в R и запустим на онлайн-IDE Programiz. 

Кстати, если вы затрудняетесь с выбором онлайн-среды разработки, почитайте мою статью с полным разбором некоторых популярных веб-сред.
Нужно ли питонисту учить R 3
Python-версия скрипта
Нужно ли питонисту учить R 4
R-версия скрипта

Выходит, что даже на таких простых вещах R уже показывает отставание – 0.000012 против 0.02779651 секунд, то есть в 2300+ раз медленнее. 

Синтаксис

На мой взгляд, языки примерно одинаковы по лаконичности и читаемости:

Python:

			from datetime import datetime

start_time = datetime.now()
 
lst = ['lorem', 'ipsum', 'dolor', 'sit', 'amen']

i = 0
while i < len(lst):
    lst[i] += lst[i]
    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[i] <- paste(lst[i], lst[i], sep = "")
  i <- i + 1
}
end_time <- Sys.time()
duration <- end_time - start_time
print(duration)
		

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

Заключение

В случае, если вы выбрали стать веб-разработчиком, дата-сайентистом, дата-аналитиком или дата-инженером, R вы встретите в небольшом количестве вакансий, он пригодится в разве что для расширения кругозора. Однако если вы планируете строить академическую карьеру, повлиять на науки статистики, теории вероятности и смежных направлений, R подойдет. На этом языке учат лучшие факультеты СПбГУ, МФТИ и других культовых университетов страны. 

Более того, его можно использовать в ВМЕСТЕ с Python: один язык для подготовки данных и очистки, другой – для визуализации.

Нужно ли питонисту учить R 5
Какой язык был у вас первым?
Python
R
Другой язык
Хочу увидеть результат
Следите за новыми постами
Следите за новыми постами по любимым темам
521 открытий1К показов