Автор канала Алексей Селезнёв, руководитель отдела аналитики в Netpeak, автор R пакетов: ryandexdirect, rfacebookstat и др. В канале публикуются статьи, доклады, новости, заметки по языку R.
rtgstat, пакета предназначенного для аналитики telegram каналов по средствам запроса данных из TGStat API.
Что нового?
● Добавлена новая функция tg_channels_search(), которая позволяет вам искать каналы задав тематику, язык или страну. На данный момент в TGStat API доступна статистика более чем по 500 000 различных телеграм каналов.
● Любая из функций пакета теперь не отправляя запрос к API вернёт ошибку, если в вашей сессии не установлен API токен.
● Исправлена ошибка чтения токенов, ранее функции пакета проверяли наличие токена только в опциях, игнорируя переменные среды, по умолчанию это вызывали ошибку Error: empty_token при работе с пакетом.
Установка новой версии: install.packages('rtgstat')
——————————
В марте выйдет видео урок по работе с пакетом rtgstat.
——————————
Ссылки:
- сайт пакета
- страница на CRAN
- репозиторий на GitHub
#новости_и_релизы_RError in function(val) : could not find function "function".
Ошибка означает, что вы обращаетесь к функции, которая не определена ни в глобальном окружении, ни в окружении подключённых пакетов.
Как вы знаете, в R десятки тысяч пакетов, как понять какой именно необходимо установить, что бы экспортировать нужную функцию.
В этом поможет сайт rdocumentation.org. Перейдите по ссылке, введите в поиске название функции, и увидите все пакеты в которых она встречается.
Так же вы можете использовать пакет sos:
sos::findFn("fread")
Ссылки:
- вспомнил я об этом увидев сообщение в чате, автор @saraikinuv
- про пакет sos рассказал @iMissile так в чате
#заметки_по_Rindex0 позволяет вам использовать индексацию с нуля в 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"
#заметки_по_RMetBrewer был создан под вдохновением от посещения художественного Метропόлитен-музей в Нью Йорке (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 со всеми палитрами
#заметки_по_Rggx является расширением для 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'")
#заметки_по_Rmemoise, построенный на основе пакета 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
#заметки_по_Rdplyr
● Создание HTML таблиц с помощью пакета gt
● Построение графиков с помощью ggplot2
#вебинары_по_R