Хороший инструмент + наличие навыков работы с ним, что достигается путем практики, позволяет легко и элегантно решать множество различных «как бы» нетипичных задач. Ниже пара подобных примеров. Уверен, что многие могут этот список расширить. Является продолжением предыдущих публикаций. Достаточно популярной является задача проведения аналитических расчетов на основани логов приложений. Например, провести аналитику действий пользователей и прикинуть прогнозные показатели, либо проверить гипотезы. Можно пойти по классическому варианту и поднять ELK стек или ему подобные (с недавних пор Splunk выбыл из доступных в России систем). Но можно немного подумать и быстро сделать все на R. Быстро во всех смыслах, как в реализации, так по времени процессинга. Но бывает ряд особенностей при решении подобной задачи: Фактически, задача может быть разделена на 2 шага: Содержание последнего шага определяется предметной областью и бизнес-задачами, R для этого шага подходит идеально. Многие не знают, но и первый шаг так же достаточно легко может быть решен на R. При этом, в зависимости от объема лог файлов, частично структурированный результат препроцессинга, пригодный для последующей аналитики, можно складывать как в файлы, так и в БД. Терабайты перемалывает на раз-два. Этот пример кода содержит в себе основные концепции, такие как параллелизация, обработку времени с учетом миллисекунд, сохранение в БД, учет многострочных записей, сводку по результату работы, использование внешних атрибутов, предварительный бенчмаркинг и выбор оптимальных функций и пакетов (re2r, например; эта гугловая библиотека для работы с регулярными является наиболее быстрой и много где используется, взять тот же самый ClickHouse, упоминаемый в коде {bencmark, у ряда операторов может быть закрыта РКН}). Но код и не претендует на идеальность, поскольку это всего-лишь однократное действие по препроцессингу данных. Делает быстро и корректно, ну и ок. Для другой похожей задачи подправим с учетом соотв. входных данных. Будет ли это разительно быстрее с точки зрения времени получения готового результата на других языках? Вопрос открытый. Параллельные версии с python, perl, awk не показали разительных отличий. Возможно, что гуру в python достигнет лучших показателей, но не забываем, что это всего-лишь проходная периодическая «однократная» задача. После поездки с несколькими устройствами на руках приходится собирать все фото воедино и как-то их упорядочивать перед последующей обработкой. Одним из оптимальных вариантов является именование файлов по дате съемки (YYYY-MM-DD hh_mm_ss), тем самым будет обеспечена упорядоченность фото по стреле времени. Exif атрибуты помогают решить эту задачу в один шаг. И это также можно выполнить с помощью R в «пару строк». Пакеты fs и exifr в помощь. Собственно говоря, задача свелась к предыдущей, только атрибуты собираются не по имени файла, а по его exif атрибутам, а в процессинге идет просто копирование файла с переименованием. Скелет скрипта и логика работы остаются без изменений. Почему exifr? Потому что он является оберткой к мощной кроссплатформенной утилите ExifTool.  Может задача и выглядит синтетической, с чем трудно спорить, поскольку различных утилит и GUI для работы с Exif и переименованием масса, но есть нюанс. Не все устройства могут подхватить измененный часовой пояс и скорректировать время (фотоаппараты, например. часто ли пользователь фотоаппарата выставляет точное время на нем?), поэтому в ходе переименования надо еще и сдвинуть временные метки с учетом источника.  Подобных задач множество, многие из них могут решаться с помощью R тоже. Предыдущая публикация — «Дети, математика и R». Data Science