R4marketing | канал Алексея Селезнёва | Язык R
4.28K subscribers
59 photos
11 files
1.21K links
Автор канала Алексей Селезнёв, украинский аналитик, автор ряда курсов по языку R и пакетов расширяющих его возможности.

В канале публикуются статьи, доклады, новости, уроки и заметки по языку R.

Для связи: @AlexeySeleznev
Реклама: http://bit.ly/39MwJCY
Download Telegram
​​Как добавить ещё одну панель кода в RStudio

Начиная с версии RStudio 2021.09.1 у нас появилась возможность полностью перенастроить интерфейс, добавив дополнительные столбцы с окнами, например для дополнительного окна Source. Пример того, как это выглядит можно посмотреть на изображении к посту.

Как добавить или удалить новый столбец с окнами

Tools > Global Options > Pane Layout > Add Columns / Remove Column

Посмотреть скрин можно тут.

Ссылки:
- узнал об этом обновлении из статьи "R Studio with great new feature – multiple code panes"

#заметки_по_R
​​Небольшой, но довольно полезный плейлист от Александра Королёва.

Полезен он будет тем, кто планирует освоить разработку собственных пакетов.


Содержание:

1. Начало работы с R на RStudio. Проект на языке R или пакет на языке R.
2. Создание проекта R package вместе с Unit tests и documentation.
3. Запуск и отладка R кода для проекта R Package

#видео_уроки_по_R
👍3
​​Вебинар введение в Язык R

Автор: Alexanyan Andron (SF Education)

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

Тезисы:
● Назначение языка R
● Почему стоит использовать язык R для анализа данных
● Преимущества языка R
● Знакомство с Rmarkdown
● Обзор базового функционала R
● Манипуляция данными с помощью dplyr
● Создание HTML таблиц с помощью пакета gt
● Построение графиков с помощью ggplot2

#вебинары_по_R
​​​​Есть ли зависимость между религиозными предпочтениями и количеством часов работы в месяц?

Пример анализа данных с использованием R.

Целью проекта является обобщение зарубежной и отечественной литературы влияния религиозных предпочтений на социально-экономические предпочтения людей, разработка методов исследования религиозной идентичности человека и взаимосвязи между ними и количеством рабочих часов человека в месяц.

Содержание:

● Вступление
● Обзор литературы и выдвижение гипотезы
● Описание данных
● Методы исследования
● Результаты

#статьи_по_R
👍4
​​Кеширование вызовов функций в R

Кэширование функций позволяет кэшировать возвращаемые значения функций в зависимости от аргументов. Это может помочь сэкономить время при работе с вводом/выводом на повторяющихся данных при длительных вычислениях. Т.е. при вызове функции запоминаются значения аргументов, и полученный результат, и в случае повторного вызова функции с теми же параметрами, результат вычислений будет считан из кеша, и вам не потребуется ждать пока пройдут все вычисления повторно.

Это может быть полезно например при обращении к справочникам по API, если данные в этих справочниках меняются не особо часто. Вряд ли вы каждые 3 минуты запускаете новые рекламные кампании.

В R кеширование функций в удобном виде позволяет реализовать пакет memoise, построенный на основе пакета cachem.


Простейший пример кеширования функции

Что бы кешировать любую функцию, используйте memoise().
 
library(memoise)

f <- function(x) {
Sys.sleep(1)
mean(x)
}

mf <- memoise(f)

Используем кешированную функцию:

 
# первый запуск проводит расчёты и запоминает результат
system.time(mf(1:10))
#> user system elapsed
#> 0.002 0.000 1.003
# далее мы читаем результат из кеша
system.time(mf(1:10))
#> user system elapsed
#> 0.000 0.000 0.001

Конфигурация кеширования

Вы можете управлять такими параметрами кеширования как:
● место физического хранения кеша
● длительность хранение кеша
● максимально допустимый размер кеша

По умолчанию кеш сохраняется в оперативной памяти функцией cachem::cache_mem(), и хранится только в течении текущей R сессии. Но вы можете использовать функцию cachem::cache_disk(), и хранить кеш на жестком диске.

Дополнительные аргументы функций cachem::cache_mem() и cachem::cache_disk() позволяют управлять размером кеша, директорией хранения кеша и некоторыми другими параметрами.
 
# Ограничиваем длительность хранения кеша 15 минутами
cm <- cachem::cache_mem(max_age = 15 * 60)
mf <- memoise(f, cache = cm)

# Хранить кеш внутри каталога "R-myapp" на уровне пользователя
# папка "C:/Users/Username/AppData/Local/R-myapp/R-myapp/Cache"
cd <- cachem::cache_disk(rappdirs::user_cache_dir("R-myapp"))
mf <- memoise(f, cache = cd)

Ссылки:
- Примеры кода взяты из README пакета memoise

#заметки_по_R
👍1
​​Data Science 'по ту сторону изгороди'

Автор: Илья Шутов (@iMissile)

Большое количество курсов по аналитике данных и питону создает впечатление, что «два месяца курсов, пандас в руках» и ты data science специалист, готовый порвать любую прямоугольную задачу.

Однако, изначально просто счёт относился к computer science, а data science было более широким и междисциплинарным понятием. В классическом понимании data scientist — «T-shape» специалист, который оцифровывает и увязывает административные и предметные вертикали/горизонтали компаний через математические модели.

Содержание:
● Задачки
● Формирование иерархического списка работ
● Сшивка цепочек идентификаторов
● Треугольная матрица
● Манипуляции с прямоугольными представлениями
● Подготовка time-series
● Комбинаторные задачки
● Числовая аннигиляция
● Парсинг полуструктурированного csv
● Еще немного задачек
● Заключение

#статьи_по_R
👍4
Продолжаем рисовать портрет подписчика, укажите ваш среднемесячный доход в долларовом эквиваленте за предыдущие 6 месяцев. Опрос анонимеый.
Anonymous Poll
6%
Нет дохода
7%
До 500$
22%
501$ - 1000$
19%
1001$ - 1500$
14%
1501$ - 2000$
12%
2001$ - 2500$
3%
2501$ - 3000$
7%
3001$ - 4000$
10%
Более 4000$
​​Обращаемся к ggplot2 на естественном языке

Пакет ggx является расширением для ggplot2, и позволяет использовать естественный язык для построения графиков, и получения справки. Состоит пакет всего из двух функций:

gg_() - Преобразует запрос на естественном языке в объект ggplot.
gghelp() - Позволяет получить справку по командам ggplot2 по запросу написанному на естественном языке.

Примеры использования:
 
library(ggx)
library(ggplot2)

# управление цветами графика
ggplot(data=iris,
mapping=aes(x=Sepal.Length,
y=Petal.Length, color=Species))+
ggtitle("Iris")+
geom_point()+
gg_("paint the title red")+
gg_("paint the x-axis label in green")+
gg_("also, I want a purple y-axis label")

# управление подписями графика
ggplot(data=iris,
mapping=aes(x=Sepal.Length,
y=Petal.Length, color=Species))+
ggtitle("Iris")+
geom_point()+
gg_("Rotate the x-axis labels by 32°")+
gg_("Rotate the y-axis labels by 172 degrees")

# управление легендой
ggplot(data=iris,
mapping=aes(x=Sepal.Length,
y=Petal.Length, color=Species))+
ggtitle("Iris")+
geom_point()+
gg_("remove legend")

# запрос справочной информации
gghelp("rotate x-axis labels by 90 degrees")
gghelp("increase font size on x-axis label")
gghelp("set x-axis label to 'Length of Sepal'")


#заметки_по_R
​​Программирование с dplyr

Друзья, опубликовал перевод виньетки "Programming with dplyr".

Содержание:
● Маскирование данных
● Переменные окружения и данных
● Косвенное обращение
● Концепция Tidy selection
● Синтаксис tidyselect DSL
● Косвенное обращение
● Рецепты
● Данные, предоставленные пользователем
● Исправление R CMD check NOTEs
● Одно или несколько пользовательских выражений
● Любое количество пользовательских выражений
● Преобразование пользовательских переменных
● Перебрать несколько переменных
● Использование переменной ввода Shiny
● Заключение

———————————
Буду благодарен за предложения по улучшению качества перевода. направлять предложения можно мне в личку.

Ссылки:
- Перевод
- Оригинал
🔥12
​​Курс "Математические методы в зоологии с использованием R".

Автор: Мария Варфаломеева (@varmara)

Цели этого курса:

Познакомить с применением различных математических методов в биологии (анализ мощности, регрессионный и дисперсионный анализ, анализ главных компонент, многомерное шкалирование, кластерный анализ), и научить самостоятельно анализировать данные с использованием скриптов на языке статистического программирования R, представлять в наглядном виде результаты анализов, интерпретировать их и представлять в виде научного отчета.

Содержание:

● Знакомство с R
● Тестирование гипотез. Анализ мощности
● Регрессионный анализ, ч.1
● Регрессионный анализ, ч.2
● Дисперсионный анализ, ч.1
● Дисперсионный анализ, ч.2
● Анализ главных компонент
● Дискриминантный анализ
● Ординация и классификация с использованием мер сходства-различия

#курсы_по_R
👍1
​​Палитры в R

Пакет MetBrewer был создан под вдохновением от посещения художественного Метропόлитен-музей в Нью Йорке (The Metropolitan Museum of Art) . По сути он состоит из набора палитр, полученных из картин представленных в этом музее.

В пакете всего одна функция met.brewer(), в которой доступно 3 аргумента:

● name - название палитры
● n - количество цветов, которые вам необходимо получить
● type - тип шкалы, непрерывная или дискретная.

Установка

Установить пакет можно из GitHub командой devtools::install_github("BlakeRMills/MetBrewer") .

Список доступных палитр

● Austria
● Cassatt
● Degas
● Egypt
● Gauguin
● Greek
● Hokusai
● Ingres
● Isfahan1
● Isfahan2
● Juarez
● Klimt
● Manet
● Monet
● Moreau
● Morgenstern
● Nattier
● NewKingdom
● Pillement
● Pissaro
● Redon
● Renoir
● Robert
● Stevens
● Tara
● Thomas
● Tiepolo
● Troy
● VanGogh1
● VanGogh2
● Veronese
● Wissing

Пример использования с ggplot2

 
library(ggplot2)
library(MetBrewer)

ggplot(data=iris,
aes(x=Sepal.Length,
y=Petal.Length,
color=Species))+
ggtitle("Iris")+
geom_point()+
scale_color_manual(values = met.brewer("Cross"))

Ссылки:
- Репозиторий на GitHub со всеми палитрами

#заметки_по_R
👍6🔥5
​​Индексирование с 0 в R

Индексирование элементов объектов в R начинается с 1, но во многих других языках, в том числе Python, индексация начинается с нуля.

Лично я никогда не понимал идеи индексации с нуля, тем не менее для кого-то она более привычна.

Пакет index0 позволяет вам использовать индексацию с нуля в R.

 
library(index0)
letters0 <- as.index0(letters)
numbers0 <- as.index0(c(2, 3, 4, 5, 6))

letters0[0]
#> [1] "a"
#> indexed from 0

numbers0[0]
#> [1] 2
#> indexed from 0

letters0[c(1, 2, 4)]
#> [1] "b" "c" "e"
#> indexed from 0

numbers0[c(1, 3)] <- NA
numbers0
#> [1] 2 NA 4 NA 6
#> indexed from 0


Ссылки:
- О пакете index0 узнал из статьи "Indexing from zero in R"

#заметки_по_R
👍4
​​Друзья, Филипп Управителев (@konhis) организовывает онлайн митап по R, передаю ему слово.

———————
Всем привет!
Приглашаю всех в пятницу 4 февраля 2022 в 20:00 MSK на онлайн-митап по R.
Запись митапа будет доступна позже.
Программа:
- Станислав Масюта, "Разработка рекомендательной системы для новичков"
- Игорь Магдеев, "Применение мodel-based clustering в задачах геологии и геофизики" (моделирование смесей Гауссовых распределений)
- Гарик Мороз, "Как подать свой пакет в ROpenSci и зачем это делать"
- Илья Шутов, "Практики применения R в бизнесе"
- Филипп Управителев: R intro

Запись всех докладов можно найти тут.
👍34🔥5
​​Как понять к какому пакету относится функция

Не редко используя чужой скрипт можно столкнуться с ошибкой Error in function(val) : could not find function "function".

Ошибка означает, что вы обращаетесь к функции, которая не определена ни в глобальном окружении, ни в окружении подключённых пакетов.

Как вы знаете, в R десятки тысяч пакетов, как понять какой именно необходимо установить, что бы экспортировать нужную функцию.

В этом поможет сайт rdocumentation.org. Перейдите по ссылке, введите в поиске название функции, и увидите все пакеты в которых она встречается.

Так же вы можете использовать пакет sos:
 
sos::findFn("fread")


Ссылки:
- вспомнил я об этом увидев сообщение в чате, автор @saraikinuv
- про пакет sos рассказал @iMissile так в чате

#заметки_по_R
👍8
​​Бесплатный курс Погрузись в мир бизнес аналитики с SQL и R

Автор: Андрон Алексанян
Платформа: SF Education

Программа:
1. Когортный анализ
2. Язык SQL
3. SQL часть 2
4. Язык R
5. Язык R часть 2
6. Машинное обучение на языке R

#курсы_по_R
👍7
​​Видео урок Грамматика графики в R. Пакет ggplot2

Автор: Артём Голубничий

Содержание:
● ggplot2
● грамматика графики
● грамматические элементы
● набор данных iris
● уровни ggplot2
● интерактивная графика
● быстрое построение изображения

#видео_уроки_по_R
👍7
​​Релиз rtgstat 0.3.0

Небольшое обновление rtgstat, пакета предназначенного для аналитики telegram каналов по средствам запроса данных из TGStat API.

Что нового?

● Добавлена новая функция tg_channels_search(), которая позволяет вам искать каналы задав тематику, язык или страну. На данный момент в TGStat API доступна статистика более чем по 500 000 различных телеграм каналов.
● Любая из функций пакета теперь не отправляя запрос к API вернёт ошибку, если в вашей сессии не установлен API токен.
● Исправлена ошибка чтения токенов, ранее функции пакета проверяли наличие токена только в опциях, игнорируя переменные среды, по умолчанию это вызывали ошибку Error: empty_token при работе с пакетом.

Установка новой версии: install.packages('rtgstat')

——————————
В марте выйдет видео урок по работе с пакетом rtgstat.
——————————

Ссылки:
- сайт пакета
- страница на CRAN
- репозиторий на GitHub

#новости_и_релизы_R
👍8
​​ОН КЛИНИК в поиске Trainee/Junior Web analyst

Курсы по программингу на Python или R будут плюсом.

Задачи:
● Внедрить (с участием подрядчиков) и поддерживать сквозную аналитику по интернет-продажам услуг в разрезе источников и каналов привлечения, типов услуг, затрат на привлечение (онлайн- и оффлайн-воронки);
● Разработка персонализированных отчетов для отдела маркетинга;
● Построение Ad-Hoc отчётов;
● Подготовка технических заданий для разработчиков и контроль их выполнения;
● Багфикс/багрепорты по работе систем веб-аналитики;
● Настройка тегов в Google Tag Manager;
● Настройка целей, представлений в Google Analytics;
● Анализ эффективности всех каналов трафика и подготовка предложений по оптимизации бюджетов и повышению уровня конверсии;
● Аналитика поведения пользователей и предложения по оптимизации удобства использования и поведенческого опыта;
● Разработка гипотез и проведение А/В-тестирований;
● Контроль и поддержание единой логики использования UTM-меток;
● Создание и поддержание актуальности отчетов маркетинговой аналитики на базе BI решений, которые позволят проводить аналитику всех каналов маркетинга с учетом реальных доходов от продаж услуг.

Требования к кандидату:
● Умение анализировать и прогнозировать результат;
● Знание Google Analytics, GTM и Excel на уверенном уровне;
● Понимание с BI системами: PowerBI или Google Data Studio;
● Понимание API (настройка сбора данных и интеграции с внешними системами), контроль разработки и внедрения с командой программистов;
● Знание различных типов моделей атрибуции.

Детали вакансии в личных сообщениях: tg @dariabarnett.
​​Уже через 20 минут (в 20:00 по Московскому времени) начнётся бесплатный онлайн митап по R.

Программа:
- Станислав Масюта, "Разработка рекомендательной системы для новичков"
- Игорь Магдеев, "Применение мodel-based clustering в задачах геологии и геофизики" (моделирование смесей Гауссовых распределений)
- Гарик Мороз, "Как подать свой пакет в ROpenSci и зачем это делать"
- Илья Шутов, "Практики применения R в бизнесе"
- Филипп Управителев: R intro

————————-
Запись всех докладов доступна в этом сообщении.
👍5