Channel Avatar

R4marketing | канал Алексея Селезнёва | Язык R

@R4marketing

Автор канала Алексей Селезнёв, украинский аналитик, автор ряда курсов по языку R и пакетов расширяющих его возможности. В канале публикуются статьи, доклады, новости, заметки по языку R. Для связи: @AlexeySeleznev Реклама: http://bit.ly/39MwJCY


Языки

Русский
​​​​👨‍💻 The Fundamentals of People Analytics: With Applications in R Новая книга The Fundamentals of People Analytics: With Applications in R, находящая в открытом доступе, предназначена для аналитиков всех уровней и поможет им эффективно решать задачи, связанные с управлением персоналом организаций. В ней представлены ключевые идеи и концепции, охватывающие весь аналитический цикл, а также подробные инструкции по использованию R для решения реальных задач. Не требуются предварительные знания статистики, баз данных или программирования. Первые главы посвящены введению в R и SQL, а также основам статистики. Человеческий капитал является самым важным активом любой организации. Без знаний и навыков сотрудников организация не сможет достичь успеха. Привлечение, развитие и удержание талантливых сотрудников становится все более сложной и ответственной задачей, поэтому организации делают значительные инвестиции в углубленное понимание организационных явлений на основе данных, влияющих на конечные результаты. Прочитав книгу, вы сможете: 1. Планировать и проводить эмпирические исследования. 2. Запрашивать и обрабатывать данные с использованием SQL. 3. Очищать и анализировать данные с помощью R. 4. Применять соответствующие статистические и ML-модели для широкого спектра задач аналитики в области управления персоналом. 5. Представлять результаты анализа и осуществлять коммуникацию со стейкхолдерами на основе данных. #books #people_analytics #R
711
qdapRegex - извлечение, замена и удаление частей текста Регулярные выражение инструмент достаточно мощный, но в тоже время и довольно непростой в понимании. Поэтому, для извлечения/удаления/замены каких-то базовых паттернов в тексте, например имейлов, номеров телефонов, почтовых индексов. чисел, дат, аббревиатур и т.д. можно использовать пакет qdapRegex. Каждая из функций пакета имеет приставку, в зависимости от её назначения: ● ex_*() - извлечение части текста ● rm_*() - удаление / замена части текста Например, в одном из постов канала я показал, как с помощью регулярных выражений удалить часть текста между двумя символами, задача казалось бы простая, но регулярное выражение для её выполнения будет не самым простым, а пакет qdapRegex решает такие задачи очень просто: library(qdapRegex)<br/><br/>x <- "I like [bots] (not)."<br/><br/>rm_between(x, "(", ")")<br/>ex_between(x, "(", ")")<br/>rm_between(x, c("(", "["), c(")", "]"))<br/>ex_between(x, c("(", "["), c(")", "]"))<br/><br/> Если вам не удалить, а заменить часть текста используйте аргумент replacement: rm_between(x, "[", "]",replacement = "humans")<br/><br/> Ниже приведу набор наиболее полезных функций: ● (ex|rm)__between() - часть текста между указанными символами ● (ex|rm)_hash() - хештеги ● (ex|rm)_tag() - именные теги (@username) ● (ex|rm)_url() - извлечение ссылок из текста ● (ex|rm)_email() - имейлы ● (ex|rm)_phone() - номера телефонов ● (ex|rm)_emoticon() - смайлы ● (ex|rm)_bracket() - текст внутри квадратных, фигурных или круглых скобок ● (ex|rm)_curly() - текст внутри фигурных скобок ● (ex|rm)_round() - текст внутри круглых скобок ● (ex|rm)_square() - текст внутри квадратных скобок ● (ex|rm)_number() - числа ● (ex|rm)_time() - время ● (ex|rm)_date() - даты ● (ex|rm)_non_words() - не слова ● (ex|rm)_nchar_words() - слова более заданной длинны ● (ex|rm)_repeated_characters() - повторяющиеся символы И это не полный набор функций, пакет будет крайне полезен для очистки текста. или извлечения нужной информации из неструктурированного текста, например из имейлов, или комментариев. # пример текста<br/>text <- "@alex привет, отправь 12.07.2023 @john информацию о стоимости #iphone на почту j.smith@corp.com потом позвони мне (067)123-45-67"<br/><br/>ex_date(text) # извлекаем дату<br/>ex_email(text) # извлекаем имейл<br/>ex_hash(text) # извлекаем хеш<br/>ex_tag(text) # извлекаем теги<br/>ex_phone(text) # извлекаем номер телефона?<br/><br/> Все функции под капотом используют американский словарь регулярных выражений, получить его можно командой data(regex_usa). Но вы можете создать и использовать собственный словарь регулярных выражений, в примере выше мы не смогли извлечь номер телефона, потому что его описание в тексте не соответствует американскому словарю регулярных выражений, давай создадим свой словарь: # создаём словарь<br/>regex_dict <- list("rm_phone" = "\\(\\d{3}\\)\\d{1,4}-\\d{1,4}-\\d{1,4}")<br/># устанавливаем пользовательский словарь по умолчанию<br/>options("regex.library" = regex_dict)<br/># используем словарь и паттерн из него<br/>ex_phone(text, pattern = "@rm_phone")<br/><br/> Пользуйтесь! #заметки_по_R
1.2K
Создание API в R при помощи Plumber Я считаю лучшим способом для интеграции приложений R в любую систему ПО, — это Plumber. Статья посвящена именно ему. К ее завершению вы создадите в R свой первый API при помощи Plumber. Содержание: 1. Пара слов об использовании R в продакшене 2. Что такое API? 3. Как работает Plumber? 4. Начнем с простого скрипта 5. Превращение скрипта в API 6. Проверим 7. Развертывание 8. Заключение #статьи_по_R
2.2K
Язык R: прокачайте свои навыки до следующего уровня Автор: Андрей Шагин В статье приводятся 7 рекомендаций по оптимизации кода в плане использования и времени выполнения ваших скриптов, говоря простыми словами, рекомендации по повышени. эффективности вашего кода. Содержание: ● Рекомендация 1. Выполняйте профилирование кода ● Рекомендация 2. Векторизируйте код ● Рекомендация 3. Матрицы вместо фреймов данных ● Рекомендация 4. is.na() и anyNA ● Рекомендация 5. if() … else() вместо ifelse() ● Рекомендация 6. Параллельные вычисления ● Рекомендация 7. Интерфейс сопряжения R с другими языками ● Заключение #статьи_по_R
2.2K
Видео урок: Как хранить и работать с секретными данными на языке R Новички зачастую хранят все секретные данные, такие как пароли и api токены, непосредственно в коде, но это считается плохой практикой. Опубликовал видео в котором рассказал почему не стоит хранить пароли в самом коде. и как правильно и безопасно хранить секретные данные. Тайм коды: 00:00 Вступление 00:39 Что такое секретные данные 01:06 Как не надо хранить секретные данные 03:18 Способы хранения и работы с секретными данными 03:54 Работа с хранилищем учётных данных операционной системы с помощью пакета keyring 06:40 Работа с файлами конфигурации с помощью пакета configr: yaml, ini, json 14:24 Работа с переменными среды 18:35 Заключение Длительность: 19:10 Ссылки: - Материалы к уроку - Видео #видео_уроки_по_R
2.3K
🤖 Краш-тест возможностей chatGPT-4 для создания визуализации данных в R с помощью ggplot2 GPT-4 можно использовать для улучшения визуализации данных в R (ggplot2), что делает его отличным инструментом как для начинающих, так и для продвинутых пользователей R. Мне понравилось, как автор видео общается с chatGPT-4. Хотя код на R иногда содержит ошибки и не работает, весь процесс выглядит очень захватывающим. От создания базовых графиков (смотрите с какой легкостью chatGPT пишет код для пайчарта 🙊 на зависть новичкам) до продвинутых техник использования ChatGPT для поиска данных, анализа и визуализации данных. ▶️ Видео Using GPT-4 for Data Viz (R/ggplot). Мораль: Как мне кажется, с появлением AI люди НЕ потеряют способность к абстрактному мышлению, анализу, или креативность. Использование chatGPT только повысит производительность труда и качество работы человека. #R #ggplot2 #chatGPT4 #визуализация_данных #dataviz #полезное
2.2K
ОН КЛИНИК в поиске Middle Web analyst Курсы по программингу на Python или R будут плюсом. Задачи: ● Поддерживать сквозную аналитику по интернет-продажам услуг в разрезе источников и каналов привлечения, типов услуг, затрат на привлечение (онлайн- и оффлайн-воронки); ● разработка персонализированных отчетов для отдела маркетинга; ● построение Ad-Hoc отчётов; ● подготовка технических заданий для разработчиков и контроль их выполнения; ● багфикс/багрепорты по работе систем веб-аналитики; ● настройка тегов в Google Tag Manager; ● настройка целей, представлений в Google Analytics; ● анализ эффективности всех каналов трафика и подготовка предложений по оптимизации бюджетов и повышению уровня конверсии; ● аналитика поведения пользователей и предложения по оптимизации удобства использования и поведенческого опыта; ● разработка гипотез и проведение А/В-тестирований; ● контроль и поддержание единой логики использования UTM-меток; ● создание и поддержание актуальности отчетов маркетинговой аналитики на базе BI решений, которые позволят проводить аналитику всех каналов маркетинга с учетом реальных доходов от продаж услуг. Требования к кандидату: ● уверенный пользователь Google Analytics, Google Tag Manager; ● уверенное владение SQL, Python или R, Google BigQuery; ● опыт работы с API (настройка сбора данных и интеграции с внешними системами), контроль разработки и внедрения с командой программистов; ● знание систем визуализации данных Power BI, Google Data Studio; ● знание различных типов моделей атрибуции, опыт их внедрения, анализ результата и принятия решений по их эффективности; ● опыт работы с большими объемами данных. GEO- Украина. Детали вакансии в личных сообщениях: tg @dariaviatorem
1.7K
ggflowchart: Создание блок-схем в R Пакет ggflowchart является надстройкой над ggplot2, которая позволяет с минимальным объёмом кода рисовать блок схемы, средствами одного чистого ggplot2 сделаьт это не так просто. Рисование блок схемы проходит в 2 этапа: 1. Сначала создать таблицу с описанием будущей блок схемы: library(ggflowchart)<br/><br/>data <- tibble::tibble(from = c("A", "A", "A", "B", "C", "F"),<br/> to = c("B", "C", "D", "E", "F", "G"))<br/><br/> 2. С помощью функции ggflowchart() нарисовать саму блок-схему ggflowchart(data)<br/><br/> Функция ggflowchart() так же имеет набор дополнительных аргументов: ● node_data - Необязательный фрейм данных, определяющий атрибуты узла, включая метки, которые должны отображаться в полях. ● fill - Цвет заливки блоков узлов. ● colour - Цвет контура блоков узлов. ● text_colour - Цвет текста в полях узла. ● text_size - Размер текста в полях узла. ● arrow_colour -Цвет стрелок между блоками узлов. ● arrow_size - Размер стрелок между блоками узлов. ● family - Семейство шрифтов текста в полях узла. ● x_nudge - Ширина блоков узлов. ●` y_nudge` - Высота блоков узлов. ● horizontal - Направление блок-схемы Преобразуем приведённую выше блок схему с помощью аргумента node_data: node_data <- tibble::tibble(<br/> name = c("A", "B", "C", "D", "E", "F", "G"),<br/> type = c("Type 1", "Type 1", "Type 1", "Type 1", <br/> "Type 2", "Type 2", "Type 2")<br/> )<br/>ggflowchart(data, node_data, fill = type)<br/><br/> Результат можно увидеть на изображении к посту. Ссылки: - Примеры кода заимствованы из статьи "Introducing {ggflowchart}" #заметки_по_R
1.5K
Туториал по языку R от ravesli R — это язык программирования с открытым исходным кодом, который широко используется как статистическое программное обеспечение и инструмент анализа данных. R обычно поставляется с интерфейсом командной строки и доступен на широко используемых платформах, таких как Windows, Linux и macOS. Содержание: 1. Введение в язык программирования R 2. Интересные факты о языке программирования R 3. Язык R в сравнении с Python 4. Окружения в R 5. Как установить R-Studio в Windows и Linux? #статьи_по_R
1.9K
Обновление пакетов rfacebookstat, rgoogleads, timeperiodsR Немного доработал некоторые из своих пакетов. ————————————————————— rfacebookstat - пакет для работы с Facebook Marketing API - Пакет переведён на работу с Facebook Marketing API v16.0 rgoogleads - пакет для работы с Google Ads API - Исправлена ошибка в функции gads_get_geo_targets(), которая позволяет запросить справочник регионов. timeperiodsR - пакет для упрощенного определения временных интервалов в R - Исправлена ошибка в функции`last_n_quarters()` - Внесён ряд небольших правок для соответвия пакета политике CRAN #новости_и_рулизы_R
2.5K
Зачем учить R в 2023 году? Автор: Дмитрий Володин (@volodin_dd) Текст будет выражать личный опыт и мнение, я не буду проводить аналитическую работу по сравнению средних зарплат и количества вакансий на разных языках. Скорее поделюсь своими мыслями. И постараюсь оставаться не предвзятым по максимуму. Содержание: 1. R как первый язык 2. R как второй язык 3. Рынок труда #статьи_по_R
2.5K
Видеозапись и материалы к митапу "Создание презентаций в Quarto на основе Revealjs" Автор: Евгений Матеров Ссылки на предыдущие митапы: 1. Обзор Quatro и начало работы 2. Основы создания веб-страниц, блогов и интерактивных книг в Quarto #видео_уроки_по_R
2.1K
rgoogleads 0.9.1 Пакет rgoogleads, предназначенный для работы с Google Ads API, переведён на работу с Google Ads API v13. Сегодня, 31 марта прекращается поддержка Google Ads API v11, с которой пакет работал ранее. Поэтому всем пользователям пакета необходимо сегодня установить новую версию с CRAN или GitHub. Установка: # CRAN<br/>install.packages('rgoogleads')<br/><br/># GitHub<br/>devtools::install_github('selesnow/rgoogleads')<br/><br/> Что нового: ● Из результата возвращаемого функцией gads_get_ad_group_criterions() было удалено поле d_group_criterion.listing_group.case_value.product_bidding_category.country_code; ● В результате возвращаемом функцией gads_get_campaigns() поле campaign.maximize_conversions.target_cpa было переименовано в campaign.maximize_conversions.target_cpa_micros. Остальные изменения в API имеют обратную совместимость. Полезные ссылки: - Видео уроки по работе с пакетом rgoogleads - Описание изменений в Google Ads API v13 #новости_и_релизы_R
2.1K
Еженедельные воркшопы по R в поддержку Украины Организатор: Daria Mykhalyshyna Вы можете учиться и поддерживать Украину одновременно! Вы можете как зарегистрироваться на предстоящие семинары, так и сделать пожертвование, чтобы получить записи и все материалы предыдущих семинаров. Если вы хотите получать новости о наших будущих семинарах по электронной почте, пожалуйста, заполните эту форму. Если у вас возникнут трудности с регистрацией или у вас возникнут вопросы, вы можете написать Дарье по адресу dariia.mykhailyshyn2@unibo.it Ссылка на воркшопы
1.8K
Как задать вопрос ChatGPT с помощью языка R Про ChatGPT не слышал наверное только глухой, или ленивый, скорее второе. Так вот, наверняка вы так же слышали что 1 марта OpenAI объявили о запуске общедоступного API для ChatGPT. А раз у ChatGPT появился API, то соответственно теперь вы можете задать ему вопрос используя практически любой ЯП, в том числе и R. Ниже представлена функция для отправки запроса в ChatGPT, и получения ответа в R консоль. library(httr2) #' Задать вопрос ChatGPT #' #' @param content Текст вашего соощения #' @param api_key Ваш API Токен #' #' @return ответ на ваш вопрос #' @export #' ask_chatgpt <- function( content, api_key ) { # компоновка и отправка запроса ans <- request("https://api.openai.com/v1/chat/completions") %>% req_headers( Authorization = paste("Bearer", api_key) ) %>% req_body_json( list( model = "gpt-3.5-turbo", messages = list( list( role = "user", content = content) ) ) ) %>% req_perform() # парсинг ответа resp <- resp_body_json(ans) # вывод ответа в консоль cat(resp$choices[[1]]$message$content) } Функция от вас потребует указать 2 аргумента: ● content - ваш вопрос; ● api_key - ваш API токен, сгенерировать токен можно после регистрации в меню "View API Keys" вашего аккаунта. Пример использования функции: # используем функцию ask_chatgpt( 'Напиши код на языке R для отправки csv по почте с gmail', 'ВАШ API ТОКЕН' ) Результат, который будет выведен в консоль: К сожалению, я не могу выполнить эту задачу, так как доступ к сторонним ресурсам не предоставляется в моих возможностях. Однако, я могу предложить вам следующий код на R, который использует библиотеку mailer для отправки электронной почты: R<br/>library(mailer)<br/><br/>send_mail(<br/> from = "example@gmail.com",<br/> to = "recipient@example.com",<br/> subject = "CSV file",<br/> body = "Attached is the CSV file.",<br/> attach_files = "data.csv",<br/> authenticate = TRUE,<br/> smtp_server = "smtp.gmail.com",<br/> smtp_port = 465,<br/> smtp_username = "example@gmail.com",<br/> smtp_password = "password",<br/> use_ssl = TRUE<br/>)<br/> Пожалуйста, замените example@gmail.com на свой адрес электронной почты, recipient@example.com на адрес получателя, data.csv на имя вашего CSV файла, а также установите свой пароль для smtp_password. Убедитесь, что разрешено использование менее защищенных приложений на вашей учетной записи Gmail. Попробуйте задать в ChatGPT свой вопрос. Ссылки: - документация к ChatGPT API #заметки_по_R
1.7K
Обзор основного функционала пакета tibble Содержание: 1. О tibble 2. Создание tibble 3. Создание матрицы 4. Отображение tibble 5. Обработка векторов 6. Проверки 7. Манипуляция данными 8. Приведение типов 9. Обработка имен строк 10. Производительность 11. Поддерживаемые типы данных #статьи_по_R
1.8K
Видео урок: Получаем и отправляем данные через httr2 в R Автор: Дмитрий Володин (@volodin_dd) На занятии вы узнаете: Как получать данные практически из любых источников в сети с помощью библиотеки httr2. А также отправлять данные и команды по сети. собирать сложные HTTP запросы из простых блоков Смотрите так же: - Работа с API на языке R, введение в пакет httr2 - Оборачиваем API с помощью httr2 #видео_уроки_по_R
1.8K
Основы создания веб-страниц, блогов и интерактивных книг в Quarto Автор: Евгений Матеров В ходе митапа мы рассмотрим: 1. как создавать статьи, блоги и интерактивные книги в Quarto 2. адаптацию документов к языковым соответствиям (локализацию документов) 3. публикацию документов в сети Интернет 4. структуру документов Quarto на основе заготовок 5. оформление библиографии 6. основы работы с Git при работе с Quarto-документами #видео_уроки_по_R
2K
Новое повсюду или статистические тесты эквивалентности Автор: Артём Черёмухин (@acheremuhin) Классические статистические тесты – это, как правило, тесты, проверяющие гипотезу о равенстве (медианы определенному значению, средних в двух независимых группах, дисперсии во многих зависимых группах, коэффициента корреляции нулю и т.д.). Однако уже более как 30 лет существует альтернативный подход, разработанный в ходе исследований по психологии – тесты эквивалентности. Он основан на идее, например, что некоторое отличающееся от нуля значение корреляции все равно может считаться незначимым для конкретной решаемой задачи. В R за реализацию тестов подобного типа отвечает пакет negligible. Рассмотрим поэтапно разные практические задачи, добавим к каждой щепотку теории и расчетов. Содержание: 1. Тесты корреляции на основе эквивалентности (для нормально распределенных величин) 2. Тест эквивалентности пропорций (тест 2 на 2) 3. Тест на наличие влияния третьей переменной на корреляцию между двумя другими 4. Тест эквивалентности дисперсий в независимых выборках 5. Тест на незначимость разницы средних значений в зависимых группах 6. Тест эквивалентности на незначимости влияния предиктора в модели регрессии 7. Тест об эквивалентности двух коэффициентов корреляции в группах 8. Тест на незначимость разницы средних значений в независимых группах #статьи_по_R
1.9K
Первый митап по Quarto: "Обзор Quarto и начало работы" Автор: Евгений Матеров Из первого митапа ы узнаете, что такое Quarto, как установить и начать работу с Quarto. Кроме того, будет кратко рассмотрена структура документов Quarto, возможности для интернет-публикации и полезные материалы по Quarto. #видео_уроки_по_R
1.9K
Среда разработки R в Jupyter Notebooks внутри докер-контейнера для VS Code Автор: Антон Бочаров (@bo44arov) Многие из вас знают, что для того, чтобы начать работать с R и Jupyter Notebooks, вам необходимо локально настроить множество вещей, таких как язык R, Anaconda, Git и т. д. Есть еще вариант использования облачных сервисов, таких как Google Colab, но он также имеет определенные ограничения. В этом посте я хочу показать вам еще один способ настройки вашей локальной среды и использования VS Code Jupyter Notebooks. #статьи_по_R
1.8K
Плейлист с видео уроками "Изучение R с нуля" Содержание: 1. R c нуля, установка языка програмирования R и среды RStudio. 2. RStudio первое знакомство со средой. 3. R сохранение файла R, работа с отчетами и MarckDown 4. Основные вычисления в R и логика програмирования 5. Числовые вектора в R, основные операции с ними 6. Типы данных в R 7. Структуры данных R 8. Проверка условий в R 9. Условные конструкции в R 10. Циклы в R 11. Практика Циклы R 12. Практика, функции в R 13. Чтение и запись файлов в R 14. Обновление R через RStudio 15. Работа с библиотекой tidyverse 16. Titanic, Kaggle Группировка и аргегирование данных на R 17. Визуализация данных R, первые шаги 18. GGplot2 в R, основы графики 19. Построение Dashboard в R c использованием библиотеки Shiny. Первое знакомство. 20. Построение Dashboard в R c использованием библиотеки Shiny Первое знакомство ЧАСТЬ 2 21. Dashboard в R Hабота с таблицами в Shiny 22. Постороение простого dashboard на R #видео_уроки_по_R
2.1K
Запуск R кода по расписанию Автор: Дмитрий Володин (@volodin_dd) Эта статья нацелена на начинающих аналитиков данных (не обязательно на R). Также она может быть полезна и опытным аналитикам. Особенно если плохо с коммуникацией с разработчиками и инфраструктурщиками (или их просто нет у вас в компании). Я пересказываю свой опыт, но кажется, он будет весьма полезен читателям. Содержание: 1. Простые способы 2. Развитие cron 3. Контейнеризация 4. Airflow 5. Заключение #статьи_по_R
1.8K