Алексадр Гинько (@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
5 крутых приемов, которые улучшат работу на R
Рассмотрим пять крутых приемов работы на R, которые просто необходимо знать. Они разнятся в применении, но задействуются в большинстве существующих проектов.
Содержание:
- Запуск кода Python на R
- Чтение/импорт и преобразование файлов
- Нахождение структуры объектов
- Просмотр первой или последней части табличной структуры
- Чтение/экспорт данных в Google Sheets
#статьи_по_R
Рассмотрим пять крутых приемов работы на R, которые просто необходимо знать. Они разнятся в применении, но задействуются в большинстве существующих проектов.
Содержание:
- Запуск кода Python на R
- Чтение/импорт и преобразование файлов
- Нахождение структуры объектов
- Просмотр первой или последней части табличной структуры
- Чтение/экспорт данных в Google Sheets
#статьи_по_R
Отличная новость, Александр Гинько (@alexan805) завершил перевод "Mastering Shiny". В течении следующих нескольких недель будет происходить ее редактура, верстка и предпечатная подготовка. После этого всем, кто прислал автору перевода свою почту, будет отправлено письмо с промокодом на скидку 22-25% для предзаказа книги (доступны бумажная и электронная версии)!
Если вы еще не успели прислать электронный адрес для получения промокода на максимальную скидку от переводчика, сейчас самое время это сделать написав Александру в telegram или facebook. Спешите, время предзаказа – это время лучших скидок! Но промокод придет не сразу, а только после верстки и ценообразования книги.
По ссылке можно ознакомиться с фрагментом перевода. А именно с главой 19 "Модули Shiny".
Ссылки:
- telegram автора перевода, Александра Гинько
- facebook автора перевода
- фрагмент перевода, 19 глава
- фрагмент перевода "Динамическая фильтрация"
#книги_по_R
Если вы еще не успели прислать электронный адрес для получения промокода на максимальную скидку от переводчика, сейчас самое время это сделать написав Александру в telegram или facebook. Спешите, время предзаказа – это время лучших скидок! Но промокод придет не сразу, а только после верстки и ценообразования книги.
По ссылке можно ознакомиться с фрагментом перевода. А именно с главой 19 "Модули Shiny".
Ссылки:
- telegram автора перевода, Александра Гинько
- facebook автора перевода
- фрагмент перевода, 19 глава
- фрагмент перевода "Динамическая фильтрация"
#книги_по_R