Вики учебник "Примеры кода на R".
Содержание:
1 Особенности написания кода на R
2 Описание известных пакетов
2.1 Пакеты для обработки данных
2.1.1 Pipelearner
2.1.2 MICE
2.1.3 Ggplot2
2.2 Пакеты с реализованными алгоритмами машинного обучения
2.2.1 Caret
2.2.2 Party
2.2.3 RandomForest
2.2.4 ClusterR
2.2.5 E1071
2.2.6 Mlr
2.2.7 H2O
3 Примеры алгоритмов
3.1 Задачи регрессии
3.1.1 Линейная регрессия
3.1.2 Множественная регрессия
3.1.3 Логистическая регрессия
3.2 Метод главных компонент
3.3 Деревья решений, случайный лес
3.3.1 Деревья решений
3.3.2 Случайный лес
3.4 Наивный Бейесовский классификатор
3.5 Метод опорных векторов
3.6 Бустинг
3.7 Кластеризация
4 См. также
5 Примечания
#учебник_по_R
Содержание:
1 Особенности написания кода на R
2 Описание известных пакетов
2.1 Пакеты для обработки данных
2.1.1 Pipelearner
2.1.2 MICE
2.1.3 Ggplot2
2.2 Пакеты с реализованными алгоритмами машинного обучения
2.2.1 Caret
2.2.2 Party
2.2.3 RandomForest
2.2.4 ClusterR
2.2.5 E1071
2.2.6 Mlr
2.2.7 H2O
3 Примеры алгоритмов
3.1 Задачи регрессии
3.1.1 Линейная регрессия
3.1.2 Множественная регрессия
3.1.3 Логистическая регрессия
3.2 Метод главных компонент
3.3 Деревья решений, случайный лес
3.3.1 Деревья решений
3.3.2 Случайный лес
3.4 Наивный Бейесовский классификатор
3.5 Метод опорных векторов
3.6 Бустинг
3.7 Кластеризация
4 См. также
5 Примечания
#учебник_по_R
Для тех кто не в курсе, ещё в прошлом году я написал небольшой учебник по разработке полноценных telegram ботов на языке R.
Тема интересная, и наверняка многим будет полезна.
Содержание:
Введение
- Предисловие
- Навыки необходимые для прохождения учебника
- Об авторе
- Правки и предложения
- Поддержать проект
1. Создаём бота, и отправляем с его помощью сообщения в telegram
1.1 Создание телеграм бота
1.2 Установка пакета для работы с телеграм ботом на R
1.3 Отправка сообщений из R в Telegram
1.4 Как отправить в telegram таблицу
1.5 Как добавить в сообщение Emoji
1.6 Проверка планировщика задач Windows, и отправка уведомления о задачах, работа которых была завершена аварийно
1.7 Настраиваем расписание запуска проверки задач
1.8 Заключение
1.9 Тесты и задания
2. Добавляем боту поддержку команд и фильтры сообщений, класс Updater
2.1 Класс Updater
2.2 Handlers - обработчики
2.3 Добавляем первую команду боту, обработчик команд
2.4 Обработчик текстовых сообщений и фильтры
2.5 Добавление команд с параметрами
2.6 Запускаем бота в фоновом режиме
2.7 Как добавить бота в группу
2.8 Как добавить описание команд в интерфейс бота
2.9 Заключение
2.10 Тесты и задания
3. Как добавить боту поддержку клавиатуры
3.1 Какие типы клавиатур поддерживает телеграм бот
3.2 Reply клавиатура
3.3 Inline клавиатура
3.4 Заключение
3.5 Тесты и задания
4. Построение последовательного, логического диалога с ботом
4.1 Введение
4.2 Процесс построения бота
4.3 Структура проекта бота
4.4 Конфиг бота
4.5 Создаём переменную среды
4.6 Создаём базу данных
4.7 Пишем функции для работы с базой данных
4.8 Методы бота
4.9 Фильтры сообщений
4.10 Обработчики
4.11 Код запуска бота
4.12 Заключение
4.13 Тесты и задания
5. Управление правами пользователей бота
5.1 Введение
5.2 Ограничиваем права пользователя с помощью фильтров сообщений
5.3 Ограничиваем права пользователя внутри кода методов
5.4 Заключение
5.5 Тесты и задания
6. Повышаем стабильность работы бота
6.1 Конструкция tryCatch()
6.2 Логика работы конструкции tryCatch()
6.3 Используем tryCatch() внутри бота
Решение задач
- Задача 1.1
- Задача 2.1
- Задача 3.1
- Задача 4.1
- Задача 5.1
Ссылки:
- Учебник
#учебники_по_R
Тема интересная, и наверняка многим будет полезна.
Содержание:
Введение
- Предисловие
- Навыки необходимые для прохождения учебника
- Об авторе
- Правки и предложения
- Поддержать проект
1. Создаём бота, и отправляем с его помощью сообщения в telegram
1.1 Создание телеграм бота
1.2 Установка пакета для работы с телеграм ботом на R
1.3 Отправка сообщений из R в Telegram
1.4 Как отправить в telegram таблицу
1.5 Как добавить в сообщение Emoji
1.6 Проверка планировщика задач Windows, и отправка уведомления о задачах, работа которых была завершена аварийно
1.7 Настраиваем расписание запуска проверки задач
1.8 Заключение
1.9 Тесты и задания
2. Добавляем боту поддержку команд и фильтры сообщений, класс Updater
2.1 Класс Updater
2.2 Handlers - обработчики
2.3 Добавляем первую команду боту, обработчик команд
2.4 Обработчик текстовых сообщений и фильтры
2.5 Добавление команд с параметрами
2.6 Запускаем бота в фоновом режиме
2.7 Как добавить бота в группу
2.8 Как добавить описание команд в интерфейс бота
2.9 Заключение
2.10 Тесты и задания
3. Как добавить боту поддержку клавиатуры
3.1 Какие типы клавиатур поддерживает телеграм бот
3.2 Reply клавиатура
3.3 Inline клавиатура
3.4 Заключение
3.5 Тесты и задания
4. Построение последовательного, логического диалога с ботом
4.1 Введение
4.2 Процесс построения бота
4.3 Структура проекта бота
4.4 Конфиг бота
4.5 Создаём переменную среды
4.6 Создаём базу данных
4.7 Пишем функции для работы с базой данных
4.8 Методы бота
4.9 Фильтры сообщений
4.10 Обработчики
4.11 Код запуска бота
4.12 Заключение
4.13 Тесты и задания
5. Управление правами пользователей бота
5.1 Введение
5.2 Ограничиваем права пользователя с помощью фильтров сообщений
5.3 Ограничиваем права пользователя внутри кода методов
5.4 Заключение
5.5 Тесты и задания
6. Повышаем стабильность работы бота
6.1 Конструкция tryCatch()
6.2 Логика работы конструкции tryCatch()
6.3 Используем tryCatch() внутри бота
Решение задач
- Задача 1.1
- Задача 2.1
- Задача 3.1
- Задача 4.1
- Задача 5.1
Ссылки:
- Учебник
#учебники_по_R
👍2
Алексадр Гинько (@alexan805) продолжает работу над переводом Mastering Shiny, на данный момент готово 55% перевода.
Ознакомиться с фрагментом перевода и записаться на предзаказ можно в facebook.
#книги_по_R
Ознакомиться с фрагментом перевода и записаться на предзаказ можно в facebook.
#книги_по_R
🔥1
Построение круговой диаграммы в
Не смотря на то, что круговая диаграмма один из самых неудачных способов визуализации данных, она является одним из наиболее популярных типов диаграмм.
Но если вы попробуете поискать
Но, построить круговую диаграму в
Для перевода в полярную систему координат используйте функцию
Ниже пример построения круговой диаграммы.
Ссылки
- Пример кода взял в этой статье
#заметки_по_R
ggplot2.Не смотря на то, что круговая диаграмма один из самых неудачных способов визуализации данных, она является одним из наиболее популярных типов диаграмм.
Но если вы попробуете поискать
geom_pie() среди прочих, доступных в ggplot2 геомов, то ваши поиски не увенчаются успехом. Стандартной отдельной функции под построение круговой диаграммы в ggplot2 нет.Но, построить круговую диаграму в
ggplot2 тем не менее можно. По умолчанию графики в ggplot2 строятся в декартовой системе координат. Если вы построите нормированную столбчатую диаграмму, и переведёте её из декартовой в полярную систему координат то получите круговую диаграмму. Для перевода в полярную систему координат используйте функцию
coord_polar.Ниже пример построения круговой диаграммы.
library(ggplot2)
# генерируем тестовые данные
d <- data.frame(
Slices = c("Writing code", "Staring at plot", "Fixing code", "Enjoying plot") |> rep(2),
Time = c(1, 5, 4, 2, 1, 1, 1, 2),
When = c("Before reading this post", "After reading this post") |> rep(each = 4)
) |>
transform(
# Make time relative
Time_relative = Time / ave(Time, When, FUN = sum),
Slices = factor(Slices, levels = unique(Slices)),
When = factor(When, levels = unique(When))
)
# строим круговую диаграмму
ggplot(d, aes(x = 1, y = Time_relative, fill = Slices)) +
facet_grid(cols = vars(When)) +
# преобразуем систему координат в полярную
# для построения круговой диаграммы
coord_polar(theta = "y") +
# создаём столбчатую диаграмму с позицией stacked
geom_col(position = position_stack(reverse = TRUE),
color = "tan3", size = 3, show.legend = FALSE) +
# Добавляем описание секторов
geom_text(aes(label = Slices),
position = position_stack(vjust = 0.5, reverse = TRUE)) +
# очищаем тему
theme_void() +
labs(title = "Relative time spent building piecharts with ggplot2")
Ссылки
- Пример кода взял в этой статье
#заметки_по_R
🔥1
Иван Поздняков (@pozdniakovivan) рассказал про facet в
———————————————————
Я только что нашел самую необычную фишку в {ggplot2} (точнее, в {ggforce}, который был разработан одним из ключевых создателей {ggplot2}, Томасом Педерсеном):
Это фасетка, добавляющая на график глубину. О, нет, это не какое-то псевдо-3D и даже не анимация. Это самое настоящее третье измерение:
Стереограммы раньше изображали на задней обложке тетради: такие картинки, которые при определенной фокусировке глаз создавали ощущение рельефного изображения.
Я делаю так: смотрю на нос, чтобы изображение начало двоиться. Затем фокусирую глаза так, чтобы изображения соединились. В случае двух картинок четыре картинки (два сдвоенных изображения) должны превратиться в три (не в две!)
Синтаксис этого чудачества очень простой, нужно просто к геому добавить дополнительную эстетику
https://ggforce.data-imaginist.com/reference/facet_stereo.html
Ссылка на оригинал сообщения Ивана в чате.
#заметки_по_R
ggplot2 о котором я ранее никогда не слышал.———————————————————
Я только что нашел самую необычную фишку в {ggplot2} (точнее, в {ggforce}, который был разработан одним из ключевых создателей {ggplot2}, Томасом Педерсеном):
facet_stereo().Это фасетка, добавляющая на график глубину. О, нет, это не какое-то псевдо-3D и даже не анимация. Это самое настоящее третье измерение:
ggforce::facet_stereo() создает стереограмму из двух картинок! Стереограммы раньше изображали на задней обложке тетради: такие картинки, которые при определенной фокусировке глаз создавали ощущение рельефного изображения.
Я делаю так: смотрю на нос, чтобы изображение начало двоиться. Затем фокусирую глаза так, чтобы изображения соединились. В случае двух картинок четыре картинки (два сдвоенных изображения) должны превратиться в три (не в две!)
Синтаксис этого чудачества очень простой, нужно просто к геому добавить дополнительную эстетику
depth =, это и будет отражено как «третье измерение». Результат можете увидеть на картинке.https://ggforce.data-imaginist.com/reference/facet_stereo.html
Ссылка на оригинал сообщения Ивана в чате.
#заметки_по_R
Библиотека использует в своей основе data.table как один из наиболее производительных способов работы с большими объемами данных в R. Взаимодействией с Rest API реализовано с использованием библиотеки httr, а стриминг данных через websocket.
Подробный русскоязычный мануал доступен на CRAN по ссылке.
tcsinvest - это неофициальная библиотека R для работы с API Тинькофф Инвестиции. Библиотека использует в своей основе data.table как один из наиболее производительных способов работы с большими объемами данных в R. Взаимодействией с Rest API реализовано с использованием библиотеки httr, а стриминг данных через websocket.
Подробный русскоязычный мануал доступен на CRAN по ссылке.
Очередная статья Ильи Шутова (@iMissile) - "ETL в анализе данных без перерывов на кофе и курилку".
В статье Илья перечислил некоторые приёмы и примеры кода, которые помогут привести входящие данные к нужному для анализа формату.
В первую очередь, материал ориентирован на аналитиков, которые манипулируют разумными объемами данных, необходимых для решения практических задач. ETL из Бигдаты в котором перекачиваются сотни Тб ежесуточно живет своей отдельной жизнью.
Содержание:
- Разделение задач
- Предварительный препроцессинг входных файлов
- Бинарный Excel (.xslb)
- PDF
- XML
- JSON
- CSV
- ВременнАя метка. Немного трюков
- Числовые показатели. Немного трюков
- Утилиты командной строки
- Еще быстрее. GNU parallel
- Заключение
#статьи_по_R
В статье Илья перечислил некоторые приёмы и примеры кода, которые помогут привести входящие данные к нужному для анализа формату.
В первую очередь, материал ориентирован на аналитиков, которые манипулируют разумными объемами данных, необходимых для решения практических задач. ETL из Бигдаты в котором перекачиваются сотни Тб ежесуточно живет своей отдельной жизнью.
Содержание:
- Разделение задач
- Предварительный препроцессинг входных файлов
- Бинарный Excel (.xslb)
- XML
- JSON
- CSV
- ВременнАя метка. Немного трюков
- Числовые показатели. Немного трюков
- Утилиты командной строки
- Еще быстрее. GNU parallel
- Заключение
#статьи_по_R
👍1
Что нового:
● Новый, адаптированный под разные устройства HTML формат книг - Bootstrap 4. Разработан данный формат был Хедли Викхемом и Мэллом Сельманом. Посмотреть пример можно по ссылке, книга "Mastering Shiny".
● Новые шаблоны проектов. Ранее пользователям
● Теперь вы можете создавать, и добавлять в свою HTML книгу 404 страницы.
● Внедрён новый поисковый движок fuse.js, который обеспечивает лучший пользовательский интерфейс и более тонкие возможности поиска чем прежний lunr.
Ссылки:
- Информацию о релизе взята из статьи
#новости_и_релизы_R
bookdown v0.23: пару слов об основных изменениях.bookdown - пакет, который позволяет создавать из R книги, виньетки, и так далее. Большинство найденных вами книг по R в интернете, верстались именно на bookdown.Что нового:
● Новый, адаптированный под разные устройства HTML формат книг - Bootstrap 4. Разработан данный формат был Хедли Викхемом и Мэллом Сельманом. Посмотреть пример можно по ссылке, книга "Mastering Shiny".
● Новые шаблоны проектов. Ранее пользователям
bookdown необходимо было сначала скачать шаблон проекта, теперь после установки пакета вам доступны функции create_gitbook() и create_bs4_book().● Теперь вы можете создавать, и добавлять в свою HTML книгу 404 страницы.
● Внедрён новый поисковый движок fuse.js, который обеспечивает лучший пользовательский интерфейс и более тонкие возможности поиска чем прежний lunr.
Ссылки:
- Информацию о релизе взята из статьи
#новости_и_релизы_R
На данный момент переведено уже три четверти книги "Mastering Shiny".
Подробности и очередной фрагмент перевода можно найти по ссылке у Александа Гинько (@alexan805) в facebook или в вконтакте.
Там же можете оставлять адреса для получения промокодов на предзаказ!
#книги_по_R
Подробности и очередной фрагмент перевода можно найти по ссылке у Александа Гинько (@alexan805) в facebook или в вконтакте.
Там же можете оставлять адреса для получения промокодов на предзаказ!
#книги_по_R
Анализ распределения интервалов между покупками на R
Известно, что интервалы между сообщениями в онлайн-чате подчиняются степенному распределению, как утверждали ученые из Цюриха и Вены в 2012 году, а интервалы между двумя последовательными покупателями или двумя последовательными звонками в колл-центре подчиняются экспоненциальному распределению, как утверждает википедия.
Я решил сделать ресёрч интервалов между собственными банковскими тратами за последние полгода и с помощью статистических методов на R определить, какому распределению эти интервалы будут подчиняться. Ожидается, что процесс совершения оплаты в большей степени должен быть похож на процесс отправки сообщений, чем на процесс поступления звонков или прихода покупателей, хотя бы потому, что исходит от первого лица.
#статьи
Известно, что интервалы между сообщениями в онлайн-чате подчиняются степенному распределению, как утверждали ученые из Цюриха и Вены в 2012 году, а интервалы между двумя последовательными покупателями или двумя последовательными звонками в колл-центре подчиняются экспоненциальному распределению, как утверждает википедия.
Я решил сделать ресёрч интервалов между собственными банковскими тратами за последние полгода и с помощью статистических методов на R определить, какому распределению эти интервалы будут подчиняться. Ожидается, что процесс совершения оплаты в большей степени должен быть похож на процесс отправки сообщений, чем на процесс поступления звонков или прихода покупателей, хотя бы потому, что исходит от первого лица.
#статьи
Ранее никогда не встречал и не слышал про семейство функций
Это семейство функций позволяет быстро раскидать ваши данные по определённым группам, например по возрастным.
Функции семейства cut_*():
-
-
-
Пример кода:
#заметки_по_R
cut_*() в ggplot2, случайно увидел в курсе R для Data Science.Это семейство функций позволяет быстро раскидать ваши данные по определённым группам, например по возрастным.
Функции семейства cut_*():
-
cut_interval() - создает n групп с равным диапазоном-
cut_number() - создает n групп с (приблизительно) равным количеством записей-
cut_width() - создает группы заданной шириныПример кода:
library(ggplot2)
# тестовые данные
df <- data.frame(
age = round(runif(50, 18, 55), 0),
val = round(runif(50, 1, 10), 0)
)
# создает n групп с равным диапазоном
ggplot(df, aes(x = cut_interval(age, 4), y = val)) +
geom_col()
# создает n групп с (приблизительно) равным количеством записей
ggplot(df, aes(x = cut_number(age, 4), y = val)) +
geom_col()
# создает группы заданной ширины
ggplot(df, aes(x = cut_width(age, 6), y = val)) +
geom_col()
#заметки_по_R
Наткнулся в одном из чатов на отличное объяснение того, как и для чего используется знак тильда
————————————
- Если знак
- Если знак
- Конкретно в
- Еще знак
- Существуют и другие способы использования этого знака
Резюме: знак
Ссылки:
- Оригинал сообщения
#заметки_по_R
~ в R. Мне и самому этот вопрос неоднократно задавали, ниже привожу оригинал сообщения.————————————
- Если знак
~ встречается в формуле, то он подразумевает знак равенства (модельного равенства) целевой переменной к предикторам ( lm(y ~ x + z) ) - означает моделирование линейной регрессии с целевой переменной y и двумя предикторами x и z- Если знак
~ встречается в функциях tidyverse, то он означает короткое объявление функции, например, выражение purrr::map(1:10, ~.x^2) означает - примени к каждому элементу вектора функцию возведения в квадрат- Конкретно в
ggplot2::facet_grid() знак используется для описание способа разбиения фасет- Еще знак
~ встречается в data.table::dcast, где он используется для описания способа разложения таблицы в широкий формат- Существуют и другие способы использования этого знака
Резюме: знак
~ используется различными способами в зависимости от используемых функций, поэтому нужно читать документацию и смотреть как такой знак применяется.Ссылки:
- Оригинал сообщения
#заметки_по_R
Интересную мысль описал автор статьи "Do write positive code".
Ранее я не задумывался о том, что надо стремится к тому, что бы не использовать в коде отрицания, если это возможно. Тем более не использовать двойные и тройные отрицания.
Дело в том, что наш мозг гораздо сложнее воспринимается отрицания, чем обычные условия.
Цитата из статьи:
Как только вы говорите мозгу "Не думай о слоне", первое о чём он начинает думать - это конечно слон!
Соответственно, читать код переполненный составными отрицаниями довольно сложно. Автор приводит в статье множество примеров кодов с, и без отрицаний. Ниже приведу основной пример из статьи:
#заметки_по_R
Ранее я не задумывался о том, что надо стремится к тому, что бы не использовать в коде отрицания, если это возможно. Тем более не использовать двойные и тройные отрицания.
Дело в том, что наш мозг гораздо сложнее воспринимается отрицания, чем обычные условия.
Цитата из статьи:
Как только вы говорите мозгу "Не думай о слоне", первое о чём он начинает думать - это конечно слон!
Соответственно, читать код переполненный составными отрицаниями довольно сложно. Автор приводит в статье множество примеров кодов с, и без отрицаний. Ниже приведу основной пример из статьи:
# bad
if (!file.exists(some_file_name))
{
# do something
}
else
{
# do some other thing
}
#------------------------------------
# good
if (file.exists(some_file_name))
{
# do something
}
else
{
# do some other thing
}
#заметки_по_R
Актуализировал одну старенькую статью "Как визуализировать показатель качества ключевых слов — рецепт скрипта на языке R".
Полезна она будет интернет маркетологам работающим в Google Ads.
В статье приведён пример запроса данных о показателе качества ключевых слов, и всех его составляющих из Google Ads API с помощью пакета
Так же в статье вы найдёте рекомендации по тому, какие действия необходимо предпринимать по построенной визуализации, для повышения эффективности рекламных кампаний.
#статьи_по_R
Полезна она будет интернет маркетологам работающим в Google Ads.
В статье приведён пример запроса данных о показателе качества ключевых слов, и всех его составляющих из Google Ads API с помощью пакета
rgoogleads. И визуализации полученных результатов с помощью ggplot2.Так же в статье вы найдёте рекомендации по тому, какие действия необходимо предпринимать по построенной визуализации, для повышения эффективности рекламных кампаний.
#статьи_по_R
Собрал из всех своих пакетов коллекцию для интернет маркетинга
На самом деле
На данный момент
-
-
-
-
-
-
-
-
Пакет
Установить коллекцию можно стандартной командой
#новости_и_релизы_R
galigor.На самом деле
galigor был создан пару лет назад, но на CRAN я его тогда не опубликовал. На данный момент
galigor состоит из 8ми пакетов:-
rgoogleads - пакет для работы с Google Ads API-
ryandexdirect - пакет для работы с API Яндекс.Директ-
rym - пакет для работы с Яндекс.Метрикой-
rfacebookstat - пакет для работы с Facebook MArketing API-
rmytarget - пакет для работы с API MyTarget-
rvkstat - пакет для работы с API Вконтакте-
rappsflyer -пакет для работы с AppsFlyer Pull API-
getProxy - пакет позволяющий обходить блокировку заблокированных в вашей стране сервисов.Пакет
timeperiodsR я в эту коллекцию не включил т.к. прямого отношения к интернет маркетингу он не имеет.Установить коллекцию можно стандартной командой
install.packages('galigor').#новости_и_релизы_R
Первой моей публикацией на Хабре была "Обзор пакетов для интернет маркетинга, часть 1".
С тех пор прошло почти 3 года, появилось много новых, полезных пакетов, которые могут очень сильно упростить повседневную рутину интернет маркетологам и веб аналитикам.
В связи с чем сегодня, спустя три года после первой публикации, я опубликовал продолжение "Обзор R пакетов для интернет маркетинга, часть 2".
#статьи_по_R
С тех пор прошло почти 3 года, появилось много новых, полезных пакетов, которые могут очень сильно упростить повседневную рутину интернет маркетологам и веб аналитикам.
В связи с чем сегодня, спустя три года после первой публикации, я опубликовал продолжение "Обзор R пакетов для интернет маркетинга, часть 2".
#статьи_по_R
✅ Какой объем текста на странице увеличит видимость в Google и Яндекс?
✅ Сколько фотографий товара должно быть на карточке?
✅ Какие позиции занимают сайты конкурентов по вашей семантике?
✅ Как влияют на ранжирование обновления алгоритмов поисковых систем?
✅ Какие работы над сайтом показывают эффективность, а какие нет?
Представляем обновленную версию SEOWORK — платформу аналитики и контроля SEO, где вы можете получить ответы на эти вопросы буквально в 2 клика.
За последнее время мы полностью обновили основные модули платформы и внедрили новые инструменты. Теперь вы можете:
- отследить динамику по своему сайту в сравнении с сайтами конкурентов по вашему семантическому ядру, по группе страниц или запросов,
- оценить эффективность проводимых работ, провести a/b тесты, рассчитать сколько фото товара и какой объем SEO текста должен быть на странице за счет аналитики сегментов (групп страниц или запросов),
- построить BI отчеты по любым сегментам в разрезе видимости, спроса или трафика, нажав одну кнопку,
- всегда иметь под рукой наглядную картину в динамике по трафику и видимости проекта.
Работать с платформой стало значительно проще, такой функционал будет актуален не только для SEO-специалистов, но и для руководителя проекта, product менеджера и маркетолога.
И это лишь малая часть функционала платформы!
Зарегистрируйтесь на сайте и получите тестовый доступ
✅ Сколько фотографий товара должно быть на карточке?
✅ Какие позиции занимают сайты конкурентов по вашей семантике?
✅ Как влияют на ранжирование обновления алгоритмов поисковых систем?
✅ Какие работы над сайтом показывают эффективность, а какие нет?
Представляем обновленную версию SEOWORK — платформу аналитики и контроля SEO, где вы можете получить ответы на эти вопросы буквально в 2 клика.
За последнее время мы полностью обновили основные модули платформы и внедрили новые инструменты. Теперь вы можете:
- отследить динамику по своему сайту в сравнении с сайтами конкурентов по вашему семантическому ядру, по группе страниц или запросов,
- оценить эффективность проводимых работ, провести a/b тесты, рассчитать сколько фото товара и какой объем SEO текста должен быть на странице за счет аналитики сегментов (групп страниц или запросов),
- построить BI отчеты по любым сегментам в разрезе видимости, спроса или трафика, нажав одну кнопку,
- всегда иметь под рукой наглядную картину в динамике по трафику и видимости проекта.
Работать с платформой стало значительно проще, такой функционал будет актуален не только для SEO-специалистов, но и для руководителя проекта, product менеджера и маркетолога.
И это лишь малая часть функционала платформы!
Зарегистрируйтесь на сайте и получите тестовый доступ
4 пайплайна в
Пайаплан операторы позволяют повысить читаемость кода, за счёт того, что выстраивают операции последовательно, и позволяют избегать вложенности функций друг в друга. По сути пайплан берёт результат прошлой операции, и передаёт его в качестве первого аргумента следующей.
Многие используют базовый пайплан
Ниже приведу описание этих пайпланов.
● Базовый оператор
Самый распространённый пайплан оператор, который известен всем пользователям
● Tee Pipe
Этот пайп оператор используется значительно реже базового. Он позволяет пропустить результат какого то из звеньев общей цепочки, используется когда один из шагов не возвращает какой-то конкретный результат, например если вам в ходе цепочки необходимо вывести график или выплюнуть в консоль промежуточный результат.
● Exposition Pipe
Данный оператор позволяет избежать дублирования имени объекта по примеру того, как это реализовано в tidyverse. Например, работая с базовым data.frame, для фильтрации данных внутри квадратных скобок вам необходимо дублировать имя data.frame.
Оператор
Ещё один пример использования:
● Оператор присваивания
Данный оператор переопределяет значение первого объекта цепочки.
Ссылки:
- Примеры кода заимствованы из этой статьи
#заметки_по_R
magrittrПайаплан операторы позволяют повысить читаемость кода, за счёт того, что выстраивают операции последовательно, и позволяют избегать вложенности функций друг в друга. По сути пайплан берёт результат прошлой операции, и передаёт его в качестве первого аргумента следующей.
Многие используют базовый пайплан
%>%, но на самом деле в magrittr помимо базового есть ещё 3 дополнительных пайплайна. Ниже приведу описание этих пайпланов.
● Базовый оператор
%>%Самый распространённый пайплан оператор, который известен всем пользователям
tidyverse.mtcars %>%
filter(mpg > 30) %>%
select(mpg:wt)
● Tee Pipe
%T>%Этот пайп оператор используется значительно реже базового. Он позволяет пропустить результат какого то из звеньев общей цепочки, используется когда один из шагов не возвращает какой-то конкретный результат, например если вам в ходе цепочки необходимо вывести график или выплюнуть в консоль промежуточный результат.
iris %T>%
plot %>%
group_by(Species) %>%
summarize(
MaxSepalLength = max(Sepal.Length),
MinSepalLength = min(Sepal.Length)
)
● Exposition Pipe
%$%Данный оператор позволяет избежать дублирования имени объекта по примеру того, как это реализовано в tidyverse. Например, работая с базовым data.frame, для фильтрации данных внутри квадратных скобок вам необходимо дублировать имя data.frame.
iris[iris$Sepal.Length < 5.0, ]
Оператор
%$% позволяет избегать этого дублирования:iris %$% iris[Sepal.Length < 5.0, ]
Ещё один пример использования:
iris %$% plot(Sepal.Length, Sepal.Width)
● Оператор присваивания
%<>%Данный оператор переопределяет значение первого объекта цепочки.
x <- c(1,2,3,4)
x %<>% sum
Ссылки:
- Примеры кода заимствованы из этой статьи
#заметки_по_R
Завтра в 12:30 буду вести в Yagla вебинар "Как работать с API Google Analytics 4 на языке R".
По уровню рассчитан даже на тех кто вообще про язык R не слышал:
- Что такое язык R и в чём его преимущества;
- Установка языка R и среды установки RStudio на Windows;
- Настраиваем проект в Google Cloud Console, для работы с Google Analytics API;
- Установка дополнительных пакетов расширяющих возможности языка R;
- Пример работа с API Google Analytics 4 на языке R.
Ссылки:
- Регистрация
#вебинары
По уровню рассчитан даже на тех кто вообще про язык R не слышал:
- Что такое язык R и в чём его преимущества;
- Установка языка R и среды установки RStudio на Windows;
- Настраиваем проект в Google Cloud Console, для работы с Google Analytics API;
- Установка дополнительных пакетов расширяющих возможности языка R;
- Пример работа с API Google Analytics 4 на языке R.
Ссылки:
- Регистрация
#вебинары
Как добавить ярлыки данных в ggplot2
Добавить на график подписи можно с помощью слоя
В свою очередь
● label - текст подписей
● alpha - прозрачность
● angle - угол наклона
● colour - цвет текста
● family - шрифт
● fontface - тип шрифта, жирный, курсив и т.д.
● group - группировка
● hjust - горизонтальное смещение текста относительно визуализации
● lineheight - межстрочный интервал
● size - размер шрифта
● vjust - вертикальное смещение текста относительно визуализации
Пример кода для построения графика с подписями данных:
Ссылки:
- на создание поста подтолкнула статья "Adding text labels to ggplot2 Bar Chart"
#заметки_по_R
Добавить на график подписи можно с помощью слоя
geom_text(). Агрумент vjust позволяет вам менять положение подписи выше или ниже самого столбца.В свою очередь
geom_text() поддерживает следующие эстетики:● label - текст подписей
● alpha - прозрачность
● angle - угол наклона
● colour - цвет текста
● family - шрифт
● fontface - тип шрифта, жирный, курсив и т.д.
● group - группировка
● hjust - горизонтальное смещение текста относительно визуализации
● lineheight - межстрочный интервал
● size - размер шрифта
● vjust - вертикальное смещение текста относительно визуализации
Пример кода для построения графика с подписями данных:
library(ggplot2)
# счётчик случайных чисел
set.seed(123)
# тестовый набор данных
data <- data.frame(x = sample(LETTERS[1:6], 300, replace = TRUE))
# Способ 1: используем переменную ..count..
ggplot(data, aes(x = factor(x), fill = factor(x))) +
geom_bar() +
geom_text(
aes(label = ..count..),
stat = "count",
vjust = 1.5,
colour = "white"
)
# Способ 2: Предварительная агрегация данных
data %>%
dplyr::count(x, name = 'Freq') %>%
ggplot(aes(x = x, y = Freq, fill = x)) +
geom_bar(stat = "identity") +
geom_text(
aes(label = Freq),
vjust = -1,
colour = "gray32",
fontface = 'bold'
)
Ссылки:
- на создание поста подтолкнула статья "Adding text labels to ggplot2 Bar Chart"
#заметки_по_R