Комментарии 31
Если интересно -- заглядывайте в коммьюнити. Получите ответы на все вопросы.
Кривая обучения каждого отдельного человека и целый сегмент интернета -- вещи независимые.
Сарказм всезнающего лучше приберегите для других мест, желчи и без Ваших "умных" комментариев разлито повсюду с горкой.
И не лень было первым влезать со всем этим? Если же дела до этого нет -- так и фокусируйтесь на том, что интересно, проходите мимо. Что за манеры пошли.
Непонятно, как ваш комментарий связан с приведённой цитатой. Вы думаете, что до этой статьи R никто не использовал?
на сколько я понимаю из этой цитаты пик успеха языка R был пройден в 2010 году. Заметьте на пике успеха язык был не победителем конкурса, а всего лишь вошел в список на непонятно каком месте. Через 15 лет доставать из чулана такого призера, на мой взгляд как-то странно и даже не солидно для ведущей компании в мире поисковиков.
И меня например поражает школьная наивность смешанная с восторгом вот таких заявлений:
благодаря которому конструкции вида
f(g(h(x, 1), 'col'), 'mean')
превращаются в изящноеx %>% h(1) %>% g('col') %>% f('mean')
потому что ничего изящного я тут не вижу (попробуйте переставить параметры местами или использовать конструкцию для функций с другим количеством параметров).
Но я с интересом, думаю, почитал бы про RStudio
Всё это бесплатно, с удобным GUI и мощным движком визуализации данных.
Казалось бы, специализированный инструмент для аналитиков оказался практически незаменимым обычному разработчику в повседневной разработческой жизни.
RStudio как специализированный инструмент для аналитиков.
Кстати коммьюнити языка которое прячется в телеграмм и выставляет предварительные условия для входа совсем не внушает доверия, похоже на какую-то секту, на мой субъективный взгляд.
на сколько я понимаю из этой цитаты пик успеха языка R был пройден в 2010 году
Нет, логически такой вывод из приведённой цитаты не следует. R использовался ранее и продолжает использоваться по сей день.
попробуйте переставить параметры местами или использовать конструкцию для функций с другим количеством параметров
У пайпов (как у tidyverse, так и у встроенного в R) есть плейсхолдер, который позволяет поместить предыдущий аргумент в любое место. И это есть не только в R, также, например, в Elixir, и спокойно там используется.
RStudio очень хороший инструмент, который поддерживает REPL-based разработку, заданную лиспом (внутри R тоже очень похож на лисп). Вам не нужно перевыполнять весь скрипт, поменяв в нём одну строку, и это безо всяких сторонних инструментов вроде Jupyter.
коммьюнити языка которое прячется в телеграмм
В телеграме сидит не всё коммьюнити, и никаких особых условий для входа нет.
Нет, логически такой вывод из приведённой цитаты не следует
я не претендую на то что моя логика единственно верная, возможно мне не хватает информации. Но вместо того чтобы привести аргументы, действительно что то доказывающие, вы как будто повторяете какую-то мантру:
R использовался ранее и продолжает использоваться по сей день.
Если для вас это все объясняет, я в принципе не против, но как то тоже выглядит загадочно.
Не совсем понимаю, какие аргументы вы хотите получить. То, что язык использовался и используется - это факт, который вы сами можете проверить. Например, можно зайти на StackOverflow и проверить, что сообщество языка было активно и до, и после 2010 года. Особенно после, когда появился и начал развиваться упомянутый в статье tydiverse. И до этого, потому что в языке есть встроенный тип для табличных данных, с которым удобно работать для аналитики. Pandas в Python появился позже (и был основан как раз на data.frame из R) и всегда проигрывал в скорости и удобстве решениям на R (доказательство).
То, что язык использовался и используется - это факт, который вы сами можете проверить.
Разве можно сомневаться что какой то язык использовался и продолжает использоваться? Что вы пытаетесь доказать?
Я же вам написал: мне кажется, пик успеха этого языка давно пройден, еще и судя по тому какой страшной формы в нем операторы применяются, %>% чем то Perl напоминает(который кстати тоже использовался и используется).
А так Visual Basic тоже использовался и используется, или вы будете спорить?
Я даже подозреваю что в Visual Basic-е тоже есть встроенный тип для табличных данных, возможно кому-то с ним тоже удобно работать для аналитики.
Я вообще XSLT предпочитаю для серьезных решений, для не серьезных я всегда могу что-то придумать на тех инструментах которые в данный момент под рукой. Не устанавливать же целую среду разработки для эпизодических задач.
Что вы пытаетесь доказать?
Что ваш изначальный комментарий о языке вместе с приведённой цитатой некорректен как минимум с логической точки зрения, а вообще говоря, и с фактической.
Вам "кажется" и Вы "подозреваете", все на смутных ощущениях... Зачем без знаний лезть в спор?
Со своими аргументами и упоминанием XSLT Вы просто бесконечно скучны. История вообще не про это и модель мира сильно сложнее трансформации. Почитайте книги, если интересно. Про R, про process mining, про Quarto. Посмотрите материалы Posit. Или просто вернитесь в свой мир.
Встречный вопрос к Вам.
Ваши публикации на хабре, коих не один десяток, выглядят разумным текстом взрослого человека.
Семантика Ваших комментариев здесь никак не бьется с публикациями.
Точно один человек скрывается под аккаунтом? Или тут пишет Mr. Hyde?
И взрослый человек знает, что для серьезных разговоров одного фронтмена недостаточно. За что Вы Михаилу свою точку зрения под личиной вопросов диктуете?
Вся же Ваша «Ха́йли ла́йкли» риторика выглядит полным субъективным бредом.
Вас пригласили в коммьюнити, протянули руку. Хотите задать вопросы и получить ответы? Пожалуйста, почти на все вопросы можно получить четкие ответы. Кроме уважения участников в коммьюнити больше ничего не требуется.
И большая часть коммьюнити, как минимум, билингва (R/python). А то и более, если считать SQL, JS, Julia, C++ тоже языками.
на сколько я понимаю из этой цитаты пик успеха языка R был пройден в 2010 году
Вы бы хоть погуглили, ютуб там посмотрели, чтобы понимать. А то "Пастернака не читал, но ..."
Необычный выбор для разработчика, учитывая что как раз таки возможные уникальные преимущества R, ради которых можно было бы его использовать не используются.
Я бы все таки рекомендовал python/anaconda, особенно если потребуется считывать данные не только из файликов. Но это для тех, кто хочет решать подобные задачки, но еще думает, что для этого использовать.
Python для меня гораздо менее удобен для ad hoc аналитики такого рода — как минимум, потому что код на R с tidyverse получается короче и удобнее для написания.
Что касается чтения данных не только из файликов — всё отлично работает и с БД (в том числе и с dbplyr), с запросами через REST API, да и с прочими источниками проблем нет.
А какие уникальные возможности R Вы имели в виду?
Удобно или нет это конечно субъективно, но pandas, matplotlib (есть и чистый аналог ggplot2), и прочее плюс минус такое же (но соглашусь в R немного лучше). У R, имхо, плюс только в самом RStudio - из коробки почти всё есть сразу и сразу плюс минус удобно.
Почти все версии каких-нибудь spark, kafka, boto3, elasticsearch, rabbit урезанные, либо сильно урезанные. А если это что-то свежее и специфичное, то скорее всего только через костыли. В какой-то момент это может стать критичным, а мб такого никогда и не произойдёт
Под уникальными имел в виду какие-либо либы из биоинформатики или эконометрики, или типо того.
PS: Ну давно не юзал R, но не думаю, что его развитие в последние годы опережало питоновский стек работы с данными.
По поводу всяких enteprise системок.
Оно для чего надо? Для аналитики или для прод режима?
1. В первом случае можно стаскивать как угодно, и делается это просто набором инструментов в котором есть и awk и python и R и всякие базейки и jq и xslt и много чего еще. Задача получения данных -- низовая черновая. Как она решается -- для аналитики это вообще безразлично.
2. Спарк зачем? Бигдату считать? Так это вообще инфровая задача и она почти никогда не нужна для аналитики. Правильная постановка задачи и эксперимента часто позволяет ужать практические задачи до компактных размеров (несколько машин с терабайтами RAM -- это нынешняя реальность и это small data). Есть подборка хороших эссе на такие вопросы.
3. Если что-то хочется строить в энтерпрайзе и даже на средних данных, R прекрасно уживается в этом комбайне. Если действительно интересно, можете почитать. В Х5 такой комбайн прекрасно обслуживает всю сеть в задаче операционной аналитики с 2019 года. И никакие другие решения взлететь не смогли, хотя старалась куча команд. Конечно, может дело в руках и голове?
Конечно, может дело в руках и голове?
обычно дело в отсутствии законченной идеи. А чтобы идея в конце концов оказалась законченной (полной и достаточной и непротиворечивой) ее надо не стесняться формулировать, многократно формулировать вновь и вновь до тех пор пока не будут разрешены все противоречия, как минимум.
и опять...
Вас подводит чувство такта.
Вы тут чужой на празднике со своими копиями сентенций умных людей.
Есть вопросы по существу? Нет.
Посвятите выходные более важным делам.
Или займитесь благотворительностью.
Михаил -- большой молодец. Разобрался, сделал, написал и поделился опытом.
Я знаком с Михаилом чуть больше чем Вы, ровно поэтому все Ваше надувание щек выглядит крайне неприглядно со стороны. Очень неприглядно.
Равно как и энтерпраз-либеральная сигнатура диалога, когда Вы просто игнорируете любой содержательный вопрос в Вашу сторону и занимаетесь подтасовкой и выдергиванием из контекста. Вы здесь просто смотритесь неуместным.
Удивило только одно. Как это автор не знал об R? Не учился?
Попробуйте связку пакетов maditr, magrittr и expss. Ещё более удобно.
R интегрируется с PostgreSQL, как процедурный язык plr. В некоторых случаях это сильно упрощает задачу.
pandas и matplotlib в питоне чем не устраивают?
Если выразить мысль максимально кратко — питон не поддерживает метапрограммирование и ленивые вычисления. R умеет и то и другое, и эти возможности активно используются как в tidyverse, так и во всей экосистеме в целом.
Например, одно и то же выражение dplyr
с фильтрацией, агрегацией, мутацией и т. п. превращается в SQL-запрос простым изменением датафрейма на объект dbplyr
, или с помощью любых других бекендов к dplyr
.
Благодаря метапрограммированию возможен data masking и non-standard evaluation, то есть внутри глаголов мы можем обращаться к столбцам дата-фрейма как к переменным, и делать с ними всё, что угодно. Pandas с его query
пытается приблизиться к этому удобству, но в силу самих особенностей питона это невозможно — он не ленив, и сразу пытается вычислить аргументы функции.
В ggplot2 тот же подход с использованием метапрограммирования делает код значительно компактнее, проще для написания и переиспользуемым. Просто оставлю здесь примеры.
sqlite умеет парсить и загружать json (и duckdb тоже), первая задача может быть решена только этими средствами, и поставляются они одним файлом. если структура json не удобная то его можно преобразовать через jq (где-то можно и одним jq справиться без sql, он тоже умеет фильтровать и группировать). Я к чему: sqlite и jq это стандартные инструменты, которые полезно знать всем и они будут пригождаться из раза в раз, а вот r уже более специфичен и в это все надо вникать, он ведь больше про статистику, визуализация данных плюс, но на сколько я понимаю на выходе картинка а не интерактивный html-svg.
JQ — прекрасный инструмент, его можно эффективно использовать и в связке с R (пакет jqr). Для интерактивного анализа я нахожу R более удобным, в том числе благодаря гибкому и унифицированному синтаксису tidyverse.
DuckDB тоже отлично работает, я как-то загрузил туда 500 млн строк CSV и был приятно удивлён производительностью. А благодаря dbplyr работа с данными в DuckDB вообще ничем не отличается от работы с данными в памяти R.
Что касается интерактивной визуализации, то есть Shiny для построения дашбордов, r2d3 для удобной работы с d3 и другие инструменты, но я скорее про них просто слышал.
В общем, для меня R и RStudio — это удобный «хаб», через который удобно пользоваться самым разным инструментарием.
Как R облегчает мою жизнь разработчика