HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>23 мар 2021</li>
2 <ul><li>23 мар 2021</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Правило 35: если в мире что-то существует, для этого уже придумали свой язык программирования. И работа с данными не исключение.</p>
4 </ul><p>Правило 35: если в мире что-то существует, для этого уже придумали свой язык программирования. И работа с данными не исключение.</p>
5 <p>Технический писатель. Любит рассказывать просто про сложные вещи.</p>
5 <p>Технический писатель. Любит рассказывать просто про сложные вещи.</p>
6 <p>Язык R - главный конкурент Python для тех, кто занимается статистикой и анализом данных. Его используют в социальных и экономических науках для поиска причинно-следственных связей, сравнения выборок, создания наглядных отчётов и графиков.</p>
6 <p>Язык R - главный конкурент Python для тех, кто занимается статистикой и анализом данных. Его используют в социальных и экономических науках для поиска причинно-следственных связей, сравнения выборок, создания наглядных отчётов и графиков.</p>
7 <p>Язык разработали учёные факультета статистики Оклендского университета. Сначала это был внутренний инструмент, но потом его сделали доступным для всех - уж очень удачным он получился.</p>
7 <p>Язык разработали учёные факультета статистики Оклендского университета. Сначала это был внутренний инструмент, но потом его сделали доступным для всех - уж очень удачным он получился.</p>
8 <p>Это важный момент: R разработан статистиками для статистиков - в нём уже есть популярные статистические тесты, методы анализа данных, удобные инструменты для построения графиков. Такие возможности есть далеко не во всех популярных языках общего назначения.</p>
8 <p>Это важный момент: R разработан статистиками для статистиков - в нём уже есть популярные статистические тесты, методы анализа данных, удобные инструменты для построения графиков. Такие возможности есть далеко не во всех популярных языках общего назначения.</p>
9 <p>А специализированный язык R уверенно отвоёвывает себе место под солнцем: с 18-го места рейтинга<a>TIOBE</a>в 2016 году он поднялся на 8-ю строчку в январе 2021. Установить интерпретатор и рабочее окружение можно в любую современную операционную систему - MacOS, Linux, Windows.</p>
9 <p>А специализированный язык R уверенно отвоёвывает себе место под солнцем: с 18-го места рейтинга<a>TIOBE</a>в 2016 году он поднялся на 8-ю строчку в январе 2021. Установить интерпретатор и рабочее окружение можно в любую современную операционную систему - MacOS, Linux, Windows.</p>
10 <p>R - интерпретируемый объектно-ориентированный язык программирования. Что это значит? Функции или таблицы для него - это объекты, которые относятся к определённому классу (типу данных), а готовая программа исполняется сразу - строчка за строчкой. Компилировать код в исполняемый файл перед запуском не надо.</p>
10 <p>R - интерпретируемый объектно-ориентированный язык программирования. Что это значит? Функции или таблицы для него - это объекты, которые относятся к определённому классу (типу данных), а готовая программа исполняется сразу - строчка за строчкой. Компилировать код в исполняемый файл перед запуском не надо.</p>
11 <p>Синтаксис языка R прост и включает минимальный набор примитивных типов данных: символьные, числовые, логические и комплексные. Примитивные типы объединяются в более сложные. Например, тип вектор - это, по сути, список из нескольких объектов (чисел, строк и других). Числовые переменные могут принимать и особые значения: NaN (not a number - не число), Inf (infinity - бесконечность) и NA (not available - недоступно).</p>
11 <p>Синтаксис языка R прост и включает минимальный набор примитивных типов данных: символьные, числовые, логические и комплексные. Примитивные типы объединяются в более сложные. Например, тип вектор - это, по сути, список из нескольких объектов (чисел, строк и других). Числовые переменные могут принимать и особые значения: NaN (not a number - не число), Inf (infinity - бесконечность) и NA (not available - недоступно).</p>
12 <p>Самая популярная команда в R - чтение файла, потому что надо постоянно открывать и исследовать датасеты. Вот как она выглядит:</p>
12 <p>Самая популярная команда в R - чтение файла, потому что надо постоянно открывать и исследовать датасеты. Вот как она выглядит:</p>
13 data &lt;- read.csv("input.csv", sep = ',')<p>Здесь data - переменная, в которую сохранится файл, &lt;- - оператор присвоения, read.csv - функция для чтения файлов формата .csv, а атрибут sep (запятая) - тип разделителя между данными в исходном файле. Он необходим, чтобы таблица отображалась правильно.</p>
13 data &lt;- read.csv("input.csv", sep = ',')<p>Здесь data - переменная, в которую сохранится файл, &lt;- - оператор присвоения, read.csv - функция для чтения файлов формата .csv, а атрибут sep (запятая) - тип разделителя между данными в исходном файле. Он необходим, чтобы таблица отображалась правильно.</p>
14 <p>Кроме интерфейса командной строки, для R существуют графические пользовательские интерфейсы и интерактивные инструменты: они делают работу легче и приятнее, доступны бесплатно и распространяются под свободной лицензией GNU GPL. Вот самые популярные:</p>
14 <p>Кроме интерфейса командной строки, для R существуют графические пользовательские интерфейсы и интерактивные инструменты: они делают работу легче и приятнее, доступны бесплатно и распространяются под свободной лицензией GNU GPL. Вот самые популярные:</p>
15 <ul><li><strong>Среда разработки</strong><a><strong>RStudio</strong></a><strong>.</strong>Её можно установить на Windows, Linux и MacOS. В RStudio есть наглядная подсветка кода R, удобная навигация по тексту программы, история правок, сортировка табличных данных по столбцам, отображение графиков в отдельном окне - в общем, всё, что должно быть в нормальной среде разработки.</li>
15 <ul><li><strong>Среда разработки</strong><a><strong>RStudio</strong></a><strong>.</strong>Её можно установить на Windows, Linux и MacOS. В RStudio есть наглядная подсветка кода R, удобная навигация по тексту программы, история правок, сортировка табличных данных по столбцам, отображение графиков в отдельном окне - в общем, всё, что должно быть в нормальной среде разработки.</li>
16 </ul>Интерфейс RStudio для Windows: есть отдельные области для написания кода, отображения переменных и графиков<ul><li><strong>Веб-интерфейс</strong><a><strong>Jupyter Notebook</strong></a><strong>.</strong>Это приложение-блокнот для создания и обмена программами на R и множестве других языков, позволяющих работать с данными. Он открывается в браузере, одновременно отображая код и графические элементы - рисунки, уравнения.</li>
16 </ul>Интерфейс RStudio для Windows: есть отдельные области для написания кода, отображения переменных и графиков<ul><li><strong>Веб-интерфейс</strong><a><strong>Jupyter Notebook</strong></a><strong>.</strong>Это приложение-блокнот для создания и обмена программами на R и множестве других языков, позволяющих работать с данными. Он открывается в браузере, одновременно отображая код и графические элементы - рисунки, уравнения.</li>
17 </ul><ul><li><strong>Дистрибутив</strong><a><strong>Anaconda</strong></a> - целая коллекция популярных библиотек и программ для удобной работы с данными на языке R. Кстати, тут есть и версия для Python, которая удобно устанавливается из одного файла и включает в себя RStudio, веб-интерфейс Jupyter Notebook и много других приложений.</li>
17 </ul><ul><li><strong>Дистрибутив</strong><a><strong>Anaconda</strong></a> - целая коллекция популярных библиотек и программ для удобной работы с данными на языке R. Кстати, тут есть и версия для Python, которая удобно устанавливается из одного файла и включает в себя RStudio, веб-интерфейс Jupyter Notebook и много других приложений.</li>
18 </ul><ul><li><strong>Обработать, очистить и преобразовать данные для исследования</strong>. Например, вы хотите посмотреть, сколько в среднем пользователей скачали ваше мобильное приложение за каждый летний и осенний месяц. R позволяет исключить из графика зиму и осень и сгруппировать их по месяцам для дальнейших подсчётов.</li>
18 </ul><ul><li><strong>Обработать, очистить и преобразовать данные для исследования</strong>. Например, вы хотите посмотреть, сколько в среднем пользователей скачали ваше мобильное приложение за каждый летний и осенний месяц. R позволяет исключить из графика зиму и осень и сгруппировать их по месяцам для дальнейших подсчётов.</li>
19 <li><strong>Провести статистические тесты.</strong>Допустим, вы хотите узнать, различается ли средняя продолжительность жизни мужчин и женщин. Для этого можно запустить t-тест - его результаты покажут, есть ли статистически значимые различия между данными.</li>
19 <li><strong>Провести статистические тесты.</strong>Допустим, вы хотите узнать, различается ли средняя продолжительность жизни мужчин и женщин. Для этого можно запустить t-тест - его результаты покажут, есть ли статистически значимые различия между данными.</li>
20 </ul><ul><li><strong>Выполнить разведочный анализ.</strong>Данные необходимо проверять на нормальность, потому что многие статистические методы (например, тот же t-тест) требуют нормального распределения в исходниках. Нормальное распределение предполагает, что бóльшая часть данных группируется около среднего значения, а остальных значений гораздо меньше. Такое распределение часто встречается в жизни: людей среднего роста в мире больше всего, а высоких и низких - мало. В R есть инструменты проверки нормальности с помощью графиков и тестов.</li>
20 </ul><ul><li><strong>Выполнить разведочный анализ.</strong>Данные необходимо проверять на нормальность, потому что многие статистические методы (например, тот же t-тест) требуют нормального распределения в исходниках. Нормальное распределение предполагает, что бóльшая часть данных группируется около среднего значения, а остальных значений гораздо меньше. Такое распределение часто встречается в жизни: людей среднего роста в мире больше всего, а высоких и низких - мало. В R есть инструменты проверки нормальности с помощью графиков и тестов.</li>
21 </ul>Варианты нормального распределения: бóльшая часть данных группируется вокруг среднего значения.<ul><li><strong>Работать с таблицами разных форматов.</strong>Эта возможность пригодится аналитикам: например, чтобы объединить данные из нескольких таблиц .csv и .xlsx и обрабатывать их как один файл.</li>
21 </ul>Варианты нормального распределения: бóльшая часть данных группируется вокруг среднего значения.<ul><li><strong>Работать с таблицами разных форматов.</strong>Эта возможность пригодится аналитикам: например, чтобы объединить данные из нескольких таблиц .csv и .xlsx и обрабатывать их как один файл.</li>
22 <li><strong>Нарисовать интерактивный график</strong>и отрегулировать его параметры - значения по осям и тому подобное.</li>
22 <li><strong>Нарисовать интерактивный график</strong>и отрегулировать его параметры - значения по осям и тому подобное.</li>
23 <li><strong>Создать интерактивное приложение</strong>. Результат - симпатичная веб-страница с графиком, фильтрами и сортировкой данных. Её можно отправить коллегам или опубликовать как часть статьи. Так отслеживают<a>заболеваемость коронавирусом</a>по всему миру (код открыт и доступен<a>на GitHub</a>).</li>
23 <li><strong>Создать интерактивное приложение</strong>. Результат - симпатичная веб-страница с графиком, фильтрами и сортировкой данных. Её можно отправить коллегам или опубликовать как часть статьи. Так отслеживают<a>заболеваемость коронавирусом</a>по всему миру (код открыт и доступен<a>на GitHub</a>).</li>
24 </ul><ul><li><strong>Анализировать регрессионные модели.</strong>Регрессионный анализ - это метод, который позволяет выявить отношения между зависимой и независимой переменными. Например, аналитик хочет понять, почему в некоторых магазинах сети продажи выше, чем в других. Зависимой переменной будет объём продаж, а независимых несколько - это доход и возраст жителей района, расстояние от магазина до автобусных остановок. В результате можно выяснить, какой из этих факторов больше других влияет на выручку магазинов.</li>
24 </ul><ul><li><strong>Анализировать регрессионные модели.</strong>Регрессионный анализ - это метод, который позволяет выявить отношения между зависимой и независимой переменными. Например, аналитик хочет понять, почему в некоторых магазинах сети продажи выше, чем в других. Зависимой переменной будет объём продаж, а независимых несколько - это доход и возраст жителей района, расстояние от магазина до автобусных остановок. В результате можно выяснить, какой из этих факторов больше других влияет на выручку магазинов.</li>
25 </ul><p>Многие из этих функций подключаются с помощью библиотек. В стандартном пакете их около 20: например, stat для статистических тестов и graphics для простой визуализации. Дополнительные библиотеки можно скачать с сервера<a>CRAN</a> - в 2020 году их там было больше 16 тысяч. Среди них plotly для интерактивных графиков и tidyr для очистки данных - она помогает заполнить пропущенные значения в столбцах и сделать так, чтобы каждый столбец соответствовал только одной переменной.</p>
25 </ul><p>Многие из этих функций подключаются с помощью библиотек. В стандартном пакете их около 20: например, stat для статистических тестов и graphics для простой визуализации. Дополнительные библиотеки можно скачать с сервера<a>CRAN</a> - в 2020 году их там было больше 16 тысяч. Среди них plotly для интерактивных графиков и tidyr для очистки данных - она помогает заполнить пропущенные значения в столбцах и сделать так, чтобы каждый столбец соответствовал только одной переменной.</p>
26 <p>Основные конкуренты R - это инструменты анализа данных без кода - Excel, Google Sheets, SPSS, Tableau, Power BI и другие. А также языки программирования - Python и Julia.</p>
26 <p>Основные конкуренты R - это инструменты анализа данных без кода - Excel, Google Sheets, SPSS, Tableau, Power BI и другие. А также языки программирования - Python и Julia.</p>
27 <p>Python - универсальный язык, на нём можно создавать полноценные приложения, а R сильнее в работе со статистикой, поэтому его любят в академических кругах. Аналитики в компаниях любят оба языка, хотя Python пока популярнее и порог входа в него ниже.</p>
27 <p>Python - универсальный язык, на нём можно создавать полноценные приложения, а R сильнее в работе со статистикой, поэтому его любят в академических кругах. Аналитики в компаниях любят оба языка, хотя Python пока популярнее и порог входа в него ниже.</p>
28 <p>Сторонники Julia прочат своему фавориту славу убийцы Python. Но пока это довольно молодой язык - у него не такое сильное сообщество, гораздо меньше готовых рецептов, библиотек и документации - особенно на русском.</p>
28 <p>Сторонники Julia прочат своему фавориту славу убийцы Python. Но пока это довольно молодой язык - у него не такое сильное сообщество, гораздо меньше готовых рецептов, библиотек и документации - особенно на русском.</p>
29 <p>Сила R и других языков программирования - в их гибкости. У программ типа Excel и Tableau есть ограничения: если вам не хватает функций, придётся ждать милости разработчиков, а специалист по R достаточно быстро может сделать кастомные отчёты и графики, сопоставить нужные данные. Ещё один плюс - язык программирования позволяет полноценно работать с Big Data и строить модели машинного обучения.</p>
29 <p>Сила R и других языков программирования - в их гибкости. У программ типа Excel и Tableau есть ограничения: если вам не хватает функций, придётся ждать милости разработчиков, а специалист по R достаточно быстро может сделать кастомные отчёты и графики, сопоставить нужные данные. Ещё один плюс - язык программирования позволяет полноценно работать с Big Data и строить модели машинного обучения.</p>
30 <ul><li>Неограниченный набор функций для анализа данных - благодаря подключению библиотек.</li>
30 <ul><li>Неограниченный набор функций для анализа данных - благодаря подключению библиотек.</li>
31 <li>Возможность работы с огромными таблицами и базами данных, которые не потянут программы.</li>
31 <li>Возможность работы с огромными таблицами и базами данных, которые не потянут программы.</li>
32 <li>Продвинутые настройки интерфейса: графический пользовательский или интерфейс командной строки.</li>
32 <li>Продвинутые настройки интерфейса: графический пользовательский или интерфейс командной строки.</li>
33 <li>Полностью бесплатная экосистема - компоненты распространяются бесплатно под<a>лицензией GNU</a>. Excel стоит 69,99 доллара в год, SPSS - 3200 долларов за бессрочную лицензию, Tableau для компаний - от 70 долларов за пользователя в месяц.</li>
33 <li>Полностью бесплатная экосистема - компоненты распространяются бесплатно под<a>лицензией GNU</a>. Excel стоит 69,99 доллара в год, SPSS - 3200 долларов за бессрочную лицензию, Tableau для компаний - от 70 долларов за пользователя в месяц.</li>
34 <li>Доступен для большинства операционных систем: Windows, macOS, FreeBSD, Solaris, разных версий Unix и Linux.</li>
34 <li>Доступен для большинства операционных систем: Windows, macOS, FreeBSD, Solaris, разных версий Unix и Linux.</li>
35 <li>Богатые возможности визуализации: можно создавать приложения, строить графики разных типов, в том числе интерактивные, а также редактировать их элементы. Например, график на основе известного датасета<a>iris</a>, показывающий плотность лепестков и чашелистиков в зависимости от вида ирисов.</li>
35 <li>Богатые возможности визуализации: можно создавать приложения, строить графики разных типов, в том числе интерактивные, а также редактировать их элементы. Например, график на основе известного датасета<a>iris</a>, показывающий плотность лепестков и чашелистиков в зависимости от вида ирисов.</li>
36 </ul><ul><li>Много информации и активное сообщество:<a>блог</a>,<a>обсуждение R и RStudio</a>,<a>уроки</a>,<a>конференции</a>.</li>
36 </ul><ul><li>Много информации и активное сообщество:<a>блог</a>,<a>обсуждение R и RStudio</a>,<a>уроки</a>,<a>конференции</a>.</li>
37 <li>Обширная и понятная<a>документация</a>: есть описания всех библиотек и примеры использования. Например, вот материалы по библиотеке<a>dplyr</a>, которая служит для обработки и группировки данных.</li>
37 <li>Обширная и понятная<a>документация</a>: есть описания всех библиотек и примеры использования. Например, вот материалы по библиотеке<a>dplyr</a>, которая служит для обработки и группировки данных.</li>
38 </ul><p>Минусы R - относительные:</p>
38 </ul><p>Минусы R - относительные:</p>
39 <ul><li>Документация и большинство источников - только на английском языке. Хотя появляется всё больше русскоязычных источников - уже есть отдельный<a>раздел</a>на "Хабре", а ответы на частые вопросы можно найти на <a>Stack Overflow</a>.</li>
39 <ul><li>Документация и большинство источников - только на английском языке. Хотя появляется всё больше русскоязычных источников - уже есть отдельный<a>раздел</a>на "Хабре", а ответы на частые вопросы можно найти на <a>Stack Overflow</a>.</li>
40 <li>Человеку без опыта программирования и знания основ статистики будет сложно. Но достаточно освоить базовые понятия: среднее, мода, медиана, выборка, нормальное распределение. Например, по книге "<a>Статистика и котики</a>" В. Савельева.</li>
40 <li>Человеку без опыта программирования и знания основ статистики будет сложно. Но достаточно освоить базовые понятия: среднее, мода, медиана, выборка, нормальное распределение. Например, по книге "<a>Статистика и котики</a>" В. Савельева.</li>
41 <li>Узкая сфера применения: он идеален для анализа данных, но для разработки программ не подходит. Но в этом и его сила. Настоящий UNIX-way и находка для учёных, журналистов, дата-сайентистов, аналитиков - всех, кто хочет работать с данными.</li>
41 <li>Узкая сфера применения: он идеален для анализа данных, но для разработки программ не подходит. Но в этом и его сила. Настоящий UNIX-way и находка для учёных, журналистов, дата-сайентистов, аналитиков - всех, кто хочет работать с данными.</li>
42 </ul><p>R - это не просто язык программирования, а целая инфраструктура и специализированная среда для работы с данными. В неё уже встроены многие статистические методы и варианты визуализации.</p>
42 </ul><p>R - это не просто язык программирования, а целая инфраструктура и специализированная среда для работы с данными. В неё уже встроены многие статистические методы и варианты визуализации.</p>
43 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
43 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>